代码之家  ›  专栏  ›  技术社区  ›  Nifle Hassan Syed

知道是否为“所有用户”安装了应用程序

  •  2
  • Nifle Hassan Syed  · 技术社区  · 16 年前

    如何检测我的应用是为“所有用户”还是仅为一个用户安装的。

    今天我检查放在里面的文件 Environment.SpecialFolder.CommonApplicationData Environment.SpecialFolder.ApplicationData 我的安装人员。

    有更好的方法吗?

    2 回复  |  直到 16 年前
        1
  •  4
  •   Nifle Hassan Syed    13 年前

    要扩展sachin gaur的答案:

    S1-5-18 (*) 文件夹用于本地系统用户-安装时用于所有用户。 当前用户的安装将产品密钥放在以该用户的安全标识符(s-something-else)命名的文件夹中。

    要获取当前用户的SID,请使用 System.Security.Principal.WindowsIdentity.GetCurrent() 得到一个 WindowsIdentity . 然后,使用 User 属性以获取 SecurityIdentifier . 然后使用 ToString() 获取字符串值。

    MSDN 用于访问注册表的GetValue方法。

    (*) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\

        2
  •  1
  •   Rui Jarimba    11 年前

    我希望这对你有用。

    通过读取注册表值,可以知道是否为所有用户安装了应用程序。为此,您必须知道应用程序的产品代码:

    hkey_local_machine\software\microsoft\windows\currentversion\installer\userdata\s-1-5-18\产品\

    要读取C中的注册表项,可以使用 获取值() 方法 登记处 在Microsoft.win32中的类。