在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());
您可以根据传入的参数等设置条件。