如何在安装后检查我的c#window app是否第一次运行

时间:2011-12-13 04:43:07

标签: c#

我制作了我的窗口应用程序的exe。我想要,当我的exe安装在系统上并第一次运行到机器时。我想检查它是否是第一次运行,然后系统将自动重启,并在第一次运行后,系统不应每次都重启。

我可以这样做吗?请帮帮我。

提前致谢。

6 个答案:

答案 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();
}

就这么简单!