在Program.cs文件中替换Application.Run Winform

mah*_*esh 3 c# winforms

我有两个Winform的项目,我想通过备用表单运行应用程序.在program.cs文件中有:

Application.Run(new Form1());
Run Code Online (Sandbox Code Playgroud)

这意味着Form1将作为主要表单或启动形式的应用程序执行.是否可以通过一些时间限制或天数限制以编程方式更改它?我的意思是两天后它将执行Form2作为启动表单.如下所示:

Application.Run(new Form2());
Run Code Online (Sandbox Code Playgroud)

可能吗?

Dan*_*rth 7

当然,这没问题:

var startDate = ReadStartDateFromFile();
if(DateTime.Now.Subtract(startDate).TotalDays < 2 || startDate == new DateTime())
    Application.Run(new Form1());
else
    Application.Run(new Form2());
Run Code Online (Sandbox Code Playgroud)

该方法ReadStartDateFromFile读取程序第一次启动的日期.如果之前从未启动过,则返回new DateTime().
如果您想将此作为实现共享软件机制的一种方式,请考虑使用混淆器,否则,它很容易破解.此外,您应该加密文件,并将开始日期写入.另外,请考虑使用虚拟日期创建该文件的设置.如果有人只是删除了该文件,您应该考虑安全漏洞并直接显示Form2.

感谢Mark在评论中的精彩讨论!