代码之家  ›  专栏  ›  技术社区  ›  P a u l

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

  •  2
  • P a u l  · 技术社区  · 16 年前

    安装后第一次运行windows窗体应用程序时,我需要演示一次向导。我想我可以使用像firstrun=false这样的用户设置。但我还需要处理程序卸载后重新安装的情况。如何重置该用户设置?它已存在于配置文件中…\Users--user--\AppData\Roaming。。。对于该用户。我需要向导在任何重新安装后运行,因此我需要重置该设置。我是否需要通过自定义安装程序操作执行此操作?

    8 回复  |  直到 16 年前
        1
  •  2
  •   Guy Starbuck    16 年前

    Windows注册表似乎是这种设置的合适位置。安装程序步骤可以在用户重新安装时重置注册表项,如果不想在安装之间保留任何设置,也可以在卸载时清除注册表项。

        2
  •  2
  •   MusiGenesis    16 年前

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

        3
  •  2
  •   Franci Penov    16 年前

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

    您需要的是ISN安装的机器范围时间戳和运行FRW时的每个用户时间戳。以下是场景:

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

        4
  •  1
  •   Gishu    16 年前


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

        5
  •  1
  •   Dustin Townsend    14 年前

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

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

        6
  •  0
  •   Jon B    16 年前

        7
  •  0
  •   Pavel Chuchuva grapeot    16 年前

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

        8
  •  0
  •   Rory    14 年前

    • 安装时,使用新生成的GUID创建注册表值HKLM\Software\YourCompany\YourApp\InstallId。

    • 如果HKCU值不存在或不同,请运行第一次运行逻辑,然后将HKLM\Software\YourCompany\YourApp\InstallId复制到HKCU\Software\YourCompany\YourApp\InstallId。

    这有一个(微小的)优点,即不受时间变化的影响。