如何在程序第一次运行时显示帮助屏幕?

本文关键字:显示 帮助 屏幕 运行时 第一次 程序 | 更新日期: 2023-09-27 18:17:30

这个答案解释了如何制作一个闪屏,我已经做了:如何在windows窗体应用程序中构建闪屏?

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

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

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

如何在程序第一次运行时显示帮助屏幕?

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

对于注册表项,在伪代码中,在启动时这样做:

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,也就是说,假定它是在你的主/启动表单中声明的。

选项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");
        }