Inno Setup 実行プロセスの競合を解決する方法: プロセスを検出して終了する

一般に、特定のプログラムをインストールするとき、インストールやインストールするソフトウェアに影響を与える他のプロセスがユーザーのコンピュータ上に存在しないことを誰もが望みます。インストールを実行する前に、Inno Setup を使用して、現在のシステムで実行されているプロセスを検出できます。ユーザーが特定のプロセスを実行している場合、この検出により、インストールを実行する前にプロセスを閉じるようにユーザーに効果的に促すことができます。このようにして、ソフトウェアをインストールするときに、関連プロセスによる傍受や競合によって引き起こされるインストール エラーは発生しません。

以下は、詳細な Inno Setup 検出実行プロセスとプロンプト終了ソリューション コードのコレクションです。これを Inno Setup スクリプトにコピーし、ニーズに応じて合理的に使用できます。

 
 

1
2
3
4 5
6
7
8
9
10
11
12
13
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
37 38 39 40 41 42 43 4 4 45 46 47 48 49 50 51 52 53 54








































55
56
57

; 免責事項: この例は WLDNA によって書かれました。転載される場合は、この説明を保存してください。ありがとうございます。
;著者: WLDNA

#include "istask.ish"
;このインクルード オプションを必ず追加してください

[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=userdocs:Inno Setup Examples Output
Compression =lzma /ultra
InternalCompressLevel=ultra
;SolidCompression=yes
;DisableDirPage=yes
;DisableReadyPage=yes

[CustomMessages]
Tasks=QQ.exe
;複数のプロセスを検出したい場合は、%n 分割を使用できます。例: cmd.exe%nnotepad .exe

[コード]
function InitializeSetup(): ブール値;
begin
  Result := True;

  if PDir ('ISTask.dll') <> '' then
    if RunTasks(CustomMessage('Tasks'), False, False) then
    begin
      if MsgBox('QQ が実行中であることが検出されたため、インストールを続行できません。' + #13#10 + #13#10 + ' [OK
        ] をクリックしますQQ を直接閉じるか、[キャンセル] をクリックしてインストールを終了します。', mbconfirmation, MB_OKCANCEL) = IDYES then
        begin
          KillTask​​s(CustomMessage('Tasks'));
          Result := True;
        end
        else
          Result := False;
    end
end;

function InitializeUninstall(): Boolean;
begin
  Result := True;

  if PDir ('ISTask.dll') <> '' then
    if RunTask('QQ.exe', False) then
    begin
      if MsgBox('QQ が実行中であることが検出され、インストールを続行できません。' + #13#10 + #13#10 +
        「OK」をクリックして QQ を直接閉じるか、「キャンセル」をクリックしてインストールを終了します。', mbconfirmation, MB_OKCANCEL) = IDYES then
        begin
          KillTask​​('QQ.exe');
          結果 := True;
        end
        else
          結果 := False;
    end
end;

Inno Setup スクリプトを柔軟に使用すると、インストールの実行時に多くの操作を実行できます。重要な点はアイデアとやりたいことによって異なります。

おすすめ

転載: blog.csdn.net/winkexin/article/details/131761046