c#winforms:确定程序的第一次运行

c#winforms:确定程序的第一次运行,第1张

概述c#winforms:确定程序的第一次运行

我需要一次向导,第一次安装后运行我的windows窗体应用程序。 我可以使用像firstrun = false我想的用户设置。 但是我也需要处理程序卸载的情况,然后重新安装。 该用户设置将如何重置? 它已经存在于该用户的… Users – user – AppData Roaming …中的configuration文件中。 我需要向导运行后重新安装,所以我需要重置该设置。 我是否需要使用自定义安装程序 *** 作执行此 *** 作?

DotNetZip – 如何提取到工作目录

一个窗口窗体可以显示最小和最大button,而没有closuresbutton?

告诉Process.Start等待,直到前一个实例完成

使用PowerShell或VBS从HTML文件中提取表

在windows Vista / 7(使用DWM)中redirect应用程序的graphics输出

最好是让安装程序在注册表中创建FirstRun密钥,并将其设置为true(或1或其他),并确保卸载程序完全删除此密钥。 然后让你的应用程序在启动时读取这个键,并将其设置为false(或0或其他)。

如果用户卸载并重新安装应用程序,他们将在第一次运行该应用程序时再次看到该向导。

windows注册表似乎是这种类型的设置适当的地方。 安装程序步骤可能会在用户重新安装时重置密钥,或者如果您不想在安装之间保留任何设置,则可以在卸载时清除注册表项。

如果多个windows用户使用相同的应用程序,则每个用户的真/假设置将无法正常工作。 作为windows用户之一,安装程序仅运行一次,并且无法访问该机器上所有其他用户的每个用户设置。

你可以有一个per-machine标志,在安装时将被设置为true。 但是,如果管理员用户运行FRW并进行更改,则其他用户将无法获得FRW。 如果非管理员用户运行FRW,他们将无法更改它,并将在下次应用程序再次运行时运行FRW。

你需要的是一个机器范围的时间戳,当FRW运行的时候,每个用户的时间戳。 这是一个场景:

在安装时,在您的应用程序的HKLM注册表中添加一个时间戳。 对于每个用户,当应用程序启动时,请检查上述每个用户设置文件中的首次运行wizzard(FRW)的时间戳。 如果每个用户的时间戳早于HKLM安装戳记,请为该用户运行FRW并更新每个用户的设置文件。

如果应用程序已卸载,然后再次安装,安装程序将更新HKLM时间戳,从而导致所有用户再次运行FRW。

在设置文件或resx文件中使用名称 – 值对,如FirstRun = true。 在启动时阅读此文件,如果为true,则显示向导并将其设置为false。


每次安装时,文件的副本应该被覆盖,因此您将得到FirstRun = true。 该向导将在每次(重新)安装后运行

可以存储已经运行配置向导的用户列表。

这个列表可以存储在机器级配置文件或应用程序目录中。 当应用程序重新安装时,这个列表可以被清除。

而不是看FirstRun,你只需要用列表来检查当前用户。 如果用户在列表中,则跳过配置向导。 如果用户不在列表中显示配置向导。

您可以在程序目录中创建一个文件。 卸载程序不会删除它,因为它不是由安装程序添加的。

我会建议改变你的程序的行为,重新安装后不要重置配置设置。 毕竟,用户已经做出了自己的选择,为什么又要问同样的问题呢?

类似于@Franci Penov的建议,我会这样做:

在安装时,使用新生成的GUID创建一个注册表值HKLM Software YourCompany YourApp InstallID。

在用户首次运行时,将该值与HKCU Software YourCompany YourApp InstallID进行比较。

如果HKCU值不存在或者不同,请运行首次运行逻辑,然后将HKLM Software YourCompany YourApp InstallID复制到HKCU Software YourCompany YourApp InstallID。

这具有不受时间变化影响的(微小)优势。

总结

以上是内存溢出为你收集整理的c#winforms:确定程序的第一次运行全部内容,希望文章能够帮你解决c#winforms:确定程序的第一次运行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1288092.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存