我制作了我的窗口应用程序的exe。我想要,当我的exe安装在系统上并第一次运行到机器时。我想检查它是否是第一次运行,然后系统将自动重启,并在第一次运行后,系统不应每次都重启。
我可以这样做吗?请帮帮我。
提前致谢。
答案 0 :(得分:4)
一种选择是使用user's program settings中的值。最初为true,您可以将其设置为false,如下所示:
if (Properties.Settings.Default.IsFirstTime)
{
Properties.Settings.Default.IsFirstTime = false;
}
我还建议在设置中添加“UpgradeRequired”布尔值,默认情况下为true。当用户安装较新版本的程序时,您需要调用
Properties.Settings.Default.Upgrade();
并设置
Properties.Settings.Default.UpgradeRequired = false;
然后保存设置:
Properties.Settings.Default.Save();
原因是如果您安装新版本,IsFirstTime
将重置为其默认值(除非您使用Upgrade()
占用当前值。)
这样,您无需担心注册表,也无需担心文件权限。
在这里,把所有这些放在一起:
// this must happen as soon as your program starts, before
// you do anything else with the settings
if (Properties.Settings.Default.UpgradeRequired)
{
// upgrade FIRST, before doing anything else with the settings
Properties.Settings.Default.Upgrade();
Properties.Settings.Default.UpgradeRequired = false;
Properties.Settings.Default.Save();
}
if (Properties.Settings.Default.IsFirstTime)
{
// this is the first time running the program
Properties.Settings.Default.IsFirstTime = false;
Properties.Settings.Default.Save();
}
这对我们的客户来说效果很好。
答案 1 :(得分:3)
I can't believe I'm saying this,但您想检查文件是否存在。
如果该文件不存在,请提示用户获取权限,然后创建该文件并重新启动系统。您也可以选择删除随应用程序部署的临时文件,但我更喜欢创建文件,因为您也可以将该文件用作默认设置文件或初始数据库。
请注意,我从来没有建议从文件中读取内容,因此这仍然与链接问题中的位置兼容。
我还需要问你为什么要重启系统。 Windows中或.Net框架中的 Nothing 需要这样做。这可能会让您的用户感到烦恼。
答案 2 :(得分:0)
我认为您可以使用注册表项。执行应用程序时检查注册表中的某个键,如果未将其设置为某个值。如果注册表项不存在,则意味着第一次执行应用程序。
答案 3 :(得分:0)
你可能想要使用一个简单的空文件“first.tmp”来告诉你它是否存在你是第一次运行。如果是这种情况,请在第一次删除它。
您还可以查看Check condition if the appliation is running for the first time after being installed以获取其他答案。
答案 4 :(得分:0)
您可以将status_flag字段添加到数据库表中,并在首次运行应用程序时填写它。如果该字段已包含值,则需要检查该字段,如果已存在,则不是第一次运行。
答案 5 :(得分:0)
你好,这似乎很容易做到。
所有您需要做的就是按Alt + Enter,或转到属性。
然后,转到“设置”标签。
然后,在名称框中输入“ firstTime”。
然后,您可以在另一个框中输入“ true”。
之后,您需要执行以下代码:
if (Properties.Settings.Default.firstTime == "true") //Checks if the "firstTime" text = true
{ //If so, it does this code
// Whatever you want here
Properties.Settings.Default.firstTime = "false"; //Then it disables it, and saves it.
Properties.Settings.Default.Save();
}
就这么简单!