1

NSI スクリプトと、次のコードを含むコンパイル済みインストーラーがあります。

WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayName" "${NAME}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "InstallLocation" "$\"$INSTDIR$\""
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "UninstallString " "$\"$INSTDIR\uninstall.exe$\""
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "Publisher" "${COMPANY}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "URLInfoAbout" "${WEBSITE}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayVersion" "3.0.0"
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "NoModify" "1"
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "NoRepair" "1"
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "EstimatedSize" "400"

これにより、インストール時にすべてのキーがコンパイルおよび作成されます。それらは RegEdit で見ることができます。ただし、プログラムの追加と削除の一覧には表示されません。どのパラメーターを削除または追加しても。

まったく同じ値で新しいキーを作成しようとしましたが、リストに表示されました。アクセス許可は両方のキーでまったく同じです。

編集:

これは、x64 と x86 の両方の Windows Vista と 7 では機能しません。ファイルはデジタル署名されていません。パスにスペースが含まれていますが、二重括弧で囲まれています。キー名別名 ${NAME} には 2 つのスペースが含まれています。

4

2 に答える 2

2

これは、「UninstallString」の名前の後に誤ってスペースが含まれていることが原因であるため、Windowsはそれを適切なエントリとして認識していませんでした。

于 2013-02-08T11:31:42.230 に答える
1

32b アプリケーションを 64b OS にインストールする場合、レジストリの 32b 部分 (Wow6432Nodeキーを作成する前に ?

SetRegView 32
WriteRegStr HKLM [...]

キーは次の場所に表示されますHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\your_name

于 2012-12-14T10:59:22.787 に答える