INNO安裝卸載自動結束進程插件使用

[Code]app

//安裝前判斷是否有進程正在運行,istask.dll文件與打包的exe文件一塊兒
function RunTask(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@files:ISTask.dll stdcall delayload';
function KillTask(ExeFileName: string): Integer;
external 'KillTask@files:ISTask.dll stdcall delayload';spa

function InitializeSetup(): Boolean;
begin
  Result:= true;
  if RunTask('{#MyAppExeName}', false) then
      begin
           if MsgBox('安裝程序檢測到 {#MyAppName} 正在運行!'#13''#13'單擊「是」按鈕關閉程序並繼續安裝;'#13''#13'單擊「否」按鈕退出安裝!', mbConfirmation, MB_YESNO) = IDYES then
              begin
              KillTask('{#MyAppExeName}');
              Result:= true;
              end
           else
              Result:= false;
      end
  else Result:= true;
end;
進程

 

// 卸載前判斷進程是否在運行
function RunTaskU(FileName: string; bFullpath: Boolean): Boolean;
  external 'RunTask@{app}/ISTask.dll stdcall delayload uninstallonly';
function KillTaskU(ExeFileName: string): Integer;
  external 'KillTask@{app}/ISTask.dll stdcall delayload uninstallonly';get

function InitializeUninstall(): Boolean;
  begin
    Result:= true;
    if RunTaskU('{#MyAppExeName}', false) then
      begin
        if MsgBox('卸載程序檢測到 {#MyAppName} 正在運行!'#13''#13'單擊「是」按鈕關閉程序並繼續卸載;'#13''#13'單擊「否」按鈕退出卸載!', mbConfirmation, MB_YESNO) = IDYES then
          begin
            KillTaskU('{#MyAppExeName}');
            Result:= true;
          end
        else
          Result:= false;
      end
    else
    Result:= true;
    UnloadDll(ExpandConstant('{app}/ISTask.dll'));string

  end;it

相關文章
相關標籤/搜索