[Code] // 自定义函数,判断软件是否运行,参数为需要判断的软件的exe名称 function CheckSoftRun(strExeName: String): Boolean; // 变量定义 var ErrorCode: Integer; var strCmdKill: String; // 终止软件命令 begin strCmdKill := Format('/c taskkill /f /t /im %s', [strExeName]); // 终止程序 ShellExec('open', ExpandConstant('{cmd}'), strCmdKill, '', SW_HIDE, ewNoWait, ErrorCode); Result:= true;// 继续安装 end; // 开始页下一步时判断软件是否运行 function NextButtonClick(CurPageID: Integer): Boolean; begin if 1=CurPageID then begin Result := CheckSoftRun('{#MyAppExeName}'); end else begin Result:= true; end; end; // 卸载时关闭软件 function InitializeUninstall(): Boolean; begin Result := CheckSoftRun('{#MyAppExeName}'); end;
try { using (var managementClass = new ManagementClass("Win32_Process")) { var processInfo = new ManagementClass("Win32_ProcessStartup"); processInfo.Properties["CreateFlags"].Value = 0x00000008;
var inParameters = managementClass.GetMethodParameters("Create"); inParameters["CommandLine"] = filepath; inParameters["ProcessStartupInformation"] = processInfo;
var result = managementClass.InvokeMethod("Create", inParameters, null); if ((result != null) && ((uint)result.Properties["ReturnValue"].Value != 0)) { Console.WriteLine("Process ID: {0}", result.Properties["ProcessId"].Value); } } } catch (Exception) { } Environment.Exit(0);