0
私がインストールされているすべてのバージョンのPython(異なるバージョンは、すべてのユーザーまたは現在のユーザー用にインストールすることができる)が、以下の単純化されたスニペットはコンパイルされません収集するために、レジストリの根をループに変数を渡す必要があります。NSISのレジストリルートをループオーバーする方法は?
Var PYTHON_VERSION
Var REGISTRY_ROOTS
Var REGISTRY_ROOT
Function getPythonVersions
StrCpy $REGISTRY_ROOTS "HKLM HKCU"
StrCpy $1 1
loop:
${WordFind} "$REGISTRY_ROOTS" " " "E+$1" $REGISTRY_ROOT
StrCmp $REGISTRY_ROOT "2" done
EnumRegKey $PYTHON_VERSION $REGISTRY_ROOT "Software\Python\PythonCore" 0
MessageBox MB_OK "$PYTHON_VERSION"
IntOp $1 $1 + 1
goto loop
done:
FunctionEnd
私は次のエラーを取得する:
Usage: EnumRegKey $(user_var: output) rootkey subkey index root_key=(HKCR|HKLM|HKCU|HKU|HKCC|HKDD|HKPD|SHCTX)
は、レジストリの根をループする方法はありますか?
ありがとう!私はそのコマンドをマクロにラップして終了しましたが、レジストリ・プラグインを調べます。 2番目に提案された解決策は、ユーザーの環境に応じて1つのレジストリツリーだけをチェックするので、私にとってはあまり役に立ちません。 – jollyroger
@jollyroger:SHCTXを "all"と "current"の両方を使用してループで使用すると、HKLMとHKCUを取得できます – Anders