在我的innosetup应用程序安装期间,我正在注册一个dll(用于Windows右键单击上下文菜单和图标叠加,类似于dropbox / tortoise cvs)并执行其他一些东西。直到现在,我只为管理员用户安装应用程序。该DLL将在HKCR,HKLM中写入信息。现在,我计划支持其他非管理员用户的安装(标准用户)。
我尝试过以下几件事,
但是,如果我尝试安装该应用程序,由于无法在HKCR上写入,dll注册失败。所以,我打算只为admin用户注册dll。对于其他普通用户,计划跳过dll注册并执行其他操作。但是我找不到,如何识别当前用户是管理员用户。任何人都可以告诉我以下事项,
感谢您的回复。
答案 0 :(得分:3)
您可以检查当前用户是管理员还是超级用户:
[Code]
function IsRegularUser(): Boolean;
begin
Result := not (IsAdminLoggedOn or IsPowerUserLoggedOn);
end;
答案 1 :(得分:1)
如果要向HKLM安装内容,那么您已经为所有用户安装,而不仅仅是管理员用户。所以你不应该改变它。
安装程序中正确的做法是永远不要写入HKCU。 (为了获得最佳效果,也永远不会写入HKCR - 请写入HKLM \ Software \ Classes。)