Nit*_*hin 4 install inno-setup uninstallation kill-process windows-applications
我想使用inno setup终止进程.我想在开始安装安装程序之前检查窗口是否打开.
我可以通过搜索Windows名称来做到这一点吗?请帮我一些示例代码来杀死进程
jrm*_*jrm 16
在[UninstallRun]部分中,您可以添加以下代码:
Filename: {sys}\taskkill.exe; Parameters: "/f /im MyProcess.exe"; Flags: skipifdoesntexist runhidden
Run Code Online (Sandbox Code Playgroud)
小智 5
我这样做是为了提示用户在程序运行时关闭程序.
function CheckProcessRunning( aProcName,
aProcDesc: string ): boolean;
var
ShellResult: boolean;
ResultCode: integer;
cmd: string;
sl: TStringList;
f: string;
d: string;
begin
cmd := 'for /f "delims=," %%i ' +
'in (''tasklist /FI "IMAGENAME eq ' + aProcName + '" /FO CSV'') ' +
'do if "%%~i"=="' + aProcName + '" exit 1';
f := 'CheckProc.cmd';
d := AddBackSlash( ExpandConstant( '{tmp}' ));
sl := TStringList.Create;
sl.Add( cmd );
sl.Add( 'exit /0' );
sl.SaveToFile( d + f );
sl.Free;
Result := true;
while ( Result ) do
begin
ResultCode := 1;
ShellResult := Exec( f,
'',
d,
SW_HIDE,
ewWaitUntilTerminated,
ResultCode );
Result := ResultCode > 0;
if Result and
( MsgBox( aProcDesc + ' is running. This program must be closed to continue.'#13#10 +
'Please close it and click Yes to retry or click No to cancel this installer.',
mbConfirmation,
MB_YESNO ) <> IDYES ) then
Break;
end;
DeleteFile( d + f );
end;
Run Code Online (Sandbox Code Playgroud)
我在以下特殊代码部分中使用它如下:
// Perform some initializations. Return False to abort setup
function InitializeSetup: Boolean;
begin
// Do not use any user defined vars in here such as {app}
InitializeGlobals;
Result := not ( CheckProcessRunning( 'bcb.exe', 'C++ Builder' ) or
CheckProcessRunning( 'delphi32.exe', 'Delphi' ) or
CheckProcessRunning( 'bds.exe', 'Rad Studio' ));
end;
function InitializeUninstall: Boolean;
begin
InitializeGlobals;
Result := not ( CheckProcessRunning( 'bcb.exe', 'C++ Builder' ) or
CheckProcessRunning( 'delphi32.exe', 'Delphi' ) or
CheckProcessRunning( 'bds.exe', 'Rad Studio' ));
end;
Run Code Online (Sandbox Code Playgroud)
最好的选择是使用互斥体来查看它是否仍在使用AppMutex. 关闭它的一种方法是找到窗口句柄,然后发布一个简单的 WM_CLOSE 消息。
还有其他选项,例如“正在使用的文件”扩展名和PSVince
另请参阅这篇文章以获取更多信息。
| 归档时间: |
|
| 查看次数: |
11635 次 |
| 最近记录: |