3

innosetup アプリケーションのインストール中に、dll (Windows の右クリック コンテキスト メニューとアイコン オーバーレイに使用され、dropbox/tortoise cvs に似たもの) を登録し、他の作業も実行しています。これまで、管理者ユーザーのみにアプリケーションをインストールしています。dll は HKCR、HKLM に情報を書き込みます。現在、他の管理者以外のユーザー (標準ユーザー) のインストールもサポートする予定です。

私は以下のようないくつかのことを試しました、

  • 必要な権限を管理者からなしに変更しました。
  • すべてのレジストリ更新を HKLM から HKCU に変更しました。

しかし、アプリケーションをインストールしようとすると、HKCR に書き込むことができず、dll の登録に失敗しました。というわけで、adminユーザーだけのdllを登録する予定でした。その他の通常のユーザーについては、dll の登録をスキップして、他のことを行う予定です。しかし、現在のユーザーを特定する方法が管理ユーザーであることを確認できません。どなたか、次のことを教えていただけないでしょうか。

  • 現在のログイン ユーザーが管理者/パワー ユーザーであるかどうかを特定できますか?
  • 管理者権限なしで dll (HKCR の書き込み) を登録できますか?

お返事をありがとうございます。

4

2 に答える 2

3

現在のユーザーが管理者かパワー ユーザーかを確認できます。

[Code]
function IsRegularUser(): Boolean;
begin
    Result := not (IsAdminLoggedOn or IsPowerUserLoggedOn);
end;
于 2012-12-03T13:11:13.543 に答える
1

HKLM にインストールする場合は、管理者ユーザーだけでなく、すべてのユーザーに対して既にインストールしています。だから変えてはいけません。

インストーラーで行うべき正しいことは、HKCU に書き込まないことです。(最良の結果を得るには、HKCRには書き込まないでください。代わりに、HKLM\Software\Classes に書き込みます。)

于 2018-04-08T23:33:06.623 に答える