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

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

Application.Run(new Form1()); 

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

 Application.Run(new Form2()); 

可能吗?

当然,这没问题:

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

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

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

 if(someRuleToDetermineIfForm1NeedsToRun) { Application.Run(new Form1()); } else if(someRuleToDetermineIfForm2NeedsToRun) { Application.Run(new Form2()); } else // default { Application.Run(new Form1()); } 

当然; 你可以这样做:

 if (condition1) Application.Run(new Form1()); else Application.Run(new Form2()); 

您可以根据传入的参数等设置条件。