[Code]
function InitializeUninstall(): Boolean;
var MainRun: HWND;
var MVRun:HWND;
begin
// FindWindowByWindowName函數參數為窗口名,即窗口標題,而非進程名。
MainRun := FindWindowByWindowName('主窗口');
MVRun := FindWindowByWindowName('Connector');
if (ScreenRun<>0) or (MVRun<>0) then
begin
if Msgbox('安裝程序檢測到客戶端正在運行。' #13#13 '單擊“是”關閉進程,繼續卸載,或按“否”退出!', mbConfirmation, MB_YESNO) = idNO then
begin
Result :=false; // 安裝程序退出
end else
begin
// 如果兩個以上的判斷條件,在執行時需要分別再進行判斷 if ScreenRun<>0 then
begin
PostMessage(MainRun, 18, 0, 0); // 退出主進程
end;
if MVRun<>0 then
begin
PostMessage(MVRun, 18, 0, 0); // 退出Connector進程
end;
DelTree(ExpandConstant('{app}'), True, True, True); // 退出進程后刪除安裝位置所有文件夾
Result :=true; // 安裝程序繼續
end;
end else
begin
Result :=true; // 若未檢測到進程,則繼續安裝程序
end;
end;