我有一个包含两个 Winform 的项目,我想通过替代形式运行该应用程序。在 program.cs 文件中有:

Application.Run(new Form1());

这意味着 Form1 将作为应用程序的主窗体或启动窗体执行。
是否可以通过某个时间限制或天数限制以编程方式更改它?
我的意思是两天后它将执行 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 在评论中的精彩讨论!

关于c# - 在 Program.cs 文件中替代 Application.Run Winform,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5118176/

10-17 01:42