我需要一次向导,第一次安装后运行我的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:确定程序的第一次运行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)