1

アプリケーションをアンインストールする前に、アプリケーションにインストールされているすべてのプラグインをアンインストールしようとしています。以下のコードを使用していますが、結果がありません...

for I := 0 to GetArrayLength(PluginsID)-1 do
begin
    sUnInstallString := 'Software\Microsoft\Windows\CurrentVersion\Uninstall\' + PluginsID[I];
    Exec(sUnInstallString, '/NORESTART','', SW_SHOW, ewWaitUntilTerminated, uResultCode);
end;

何か間違っていることでも?

編集済み

コードを変更して、正しい unistall 文字列を見つけます。

  for I := 0 to GetArrayLength(Plugins)-1 do
  begin
    sUnInstPath := 'Software\Microsoft\Windows\CurrentVersion\Uninstall\' + Plugins[I];
    if RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then
    begin    
        Exec(sUnInstallString, '','', SW_HIDE, ewWaitUntilTerminated, uResultCode);
    end;
  end;

しかし、それは再び機能しません....sUnInstallStringは正しい値で満たされています。

4

2 に答える 2

0

Exec 呼び出しを次のように変更します。

Exec('>', sUnInstallString, ...)

(これを行う前に引用符を削除しないでください。)

于 2013-03-24T01:37:36.803 に答える