innosetup安裝以前關閉進程

    InnoSetup覆蓋安裝的時候可能會由於源程序正在運行而安裝失敗,如下腳本可以關閉原運行進程。app

[code]
// 安裝前檢查關閉**進程
function InitializeSetup():Boolean;
//進程ID
var appWnd: HWND;
begin
  Result := true;
  //Log('Checking If Running...');
  //根據窗體名字獲取進程ID
  appWnd := FindWindowByWindowName('IE Scavenger');
  if (appWnd <> 0) then
     //進程存在,關閉
     begin
        //Log('Is Runing...');
        //給進程發送關閉消息
        PostMessage(appWnd, 18, 0, 0);       // quit
     end else
     //進程不存在 
     begin 
        //Log('Not Runing...');
     end;
end; 函數

    InitializeSetup 函數在安裝程序初始化時調用,返回 False 中斷安裝,返回 True 反之。 ui

    FindWindowByWindowName 獲取窗口名與指定字串匹配的頂層窗口的句柄。這個函數不搜索子窗口 ,且不執行區分大小寫搜索。若是沒有找到窗口則返回 0。 spa

    運行流程就是根據窗口名獲取正在運行的程序,若是已經運行則強制關閉。相應的卸載的時候若是須要先關閉程序,能夠調用編寫InitializeUninstall函數,關閉源程序。這種是無痛關閉,沒有任何提示。你能夠本身添加提示,引導用戶進行操做。 code

相關文章
相關標籤/搜索