0

这个答案解释了如何制作我已经做过的启动画面:如何在 Windows 窗体应用程序中构建启动画面?

但是我想要一些东西,在用户第一次运行程序时,他会得到一个窗口,里面有一个解释,比如命令键、做什么、如何使用程序,然后单击确定。

然后当他再次运行该程序时,他没有得到帮助窗口,它只是直接进入应用程序。

我不太确定我需要在这里做什么,有人可以帮助我吗?

4

2 回答 2

1

当程序第一次运行时,在计算机上留下一些持久的东西。文件或注册表项是最明显的选项。

对于注册表项,在伪代码中,在启动时执行以下操作:

If (registry key not present)
{
   show instruction dialog
   add registry key
}

对于文件:

If (file '%APPDATA%\myApp\file' does not exist)
{
   Show instruction dialog
   Create file '%APPDATA%\myApp\file'
}

实现,注册表项:

protected override void OnShown(EventArgs e)
{
   var key = Registry.CurrentUser.CreateSubKey(@"Software\TestCompany\TestApp\");
   if (key.GetValue("FirstRun") == null)
   {
      ShowDialog(new HelpDialogForm());
      key.SetValue("FirstRun", "false");
   }         
}

像往常一样,为此添加必要的错误处理。上面的方法会覆盖OnShown,即假设它是在你的主/启动表单中声明的​​。

于 2013-06-07T21:28:57.927 回答
0

选项 1:您可能希望使用帮助窗口底部的复选框选项“不再显示此窗口”。您必须将此值保存为数据库中的设置或环境变量,用于决定下次用户登录时是否显示。

选项 2:您必须存储诸如“IsFirstEntryToApp”之类的内容,这将是默认的 true,并在用户登录应用程序后立即设置为 false。这将是您显示帮助窗口的提示。

大多数应用程序都使用选项 1。

编辑:您还可以将状态保存为简单场景的环境变量请参阅如何在 C# 中获取和设置环境变量?

            var alreadyLoggedInAtleastOnce = System.Environment.GetEnvironmentVariable("HasUserLoggedInIntoMyAppAtleastOnce",EnvironmentVariableTarget.User);

        if (alreadyLoggedInAtleastOnce != "True")
        {
            //This is the first login. Set the variable so that it is available the next time user logs in
            System.Environment.SetEnvironmentVariable("HasUserLoggedInIntoMyAppAtleastOnce", "True", EnvironmentVariableTarget.User);

            MessageBox.Show("This is your help window");
        }
于 2013-06-07T21:37:44.407 回答