我制作了我的窗口应用程序的exe文件。我希望当我的exe安装在系统上并运行第一次machine.I想检查它是否运行第一次系统会自动重启,第一次运行后系统不应该每次都重启。如何检查我的c#窗口应用程序在安装后是否第一次运行
我可以这样做吗?请帮帮我。
在此先感谢。
我制作了我的窗口应用程序的exe文件。我希望当我的exe安装在系统上并运行第一次machine.I想检查它是否运行第一次系统会自动重启,第一次运行后系统不应该每次都重启。如何检查我的c#窗口应用程序在安装后是否第一次运行
我可以这样做吗?请帮帮我。
在此先感谢。
I can't believeI'm saying this,但你想检查一个文件是否存在。
如果文件不存在,请提示用户输入权限,然后创建并重新启动系统。您也可以选择删除与您的应用程序一起部署的临时文件,但我更喜欢创建文件,因为您也可以将该文件用作默认设置文件或初始数据库。
请注意,在这里我从来没有建议从文件中读取,所以这仍然与链接问题中的位置兼容。
我还需要问你为什么要重新启动系统。 没有什么在Windows或在.Net框架需要这个。这可能会让你的用户恼火。
我认为你可以使用这个注册表项。在执行应用程序时检查注册表中的某个键,以及是否将其设置为某个值。如果注册表项不存在,则意味着应用程序首次执行。
这里的问题是编写该注册表项需要管理员权限......但后来因为我们正在讨论重新启动系统,这可能不是一件坏事。 –
您可能想要使用一个简单的空文件“first.tmp”,通过它的存在告诉您您第一次运行。如果是这种情况,请在第一次删除它。
你也可以看Check condition if the appliation is running for the first time after being installed其他答案。
一种选择是使用user's program settings中的值。起初真的,你可以将其设置为false,像这样:
if (Properties.Settings.Default.IsFirstTime)
{
Properties.Settings.Default.IsFirstTime = false;
}
我也建议增加一个“UpgradeRequired”布尔值默认情况下是如此的设置。当用户安装该程序的新版本,你需要调用
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();
}
这工作就好了为我们的客户。
您可以在数据库表中添加一个status_flag字段,并在第一次运行应用程序时填写它。您需要检查该字段是否已包含值,如果是,则不是第一次运行。
使用注册表项存储指示应用程序第一次启动的标志。任何注册表在卸载时将如何清除。 – Mahantesh