Inno Setup 卸载前关闭进程或服务 x86 x64

1、32位程序的PSVince.dll插件方法。

[Setup]
AppName=PSVince
AppVerName=PSVince 1.0
DisableProgramGroupPage=true
DisableStartupPrompt=true
OutputDir=.
OutputBaseFilename=testpsvince
Uninstallable=false
DisableDirPage=true
DefaultDirName={pf}\PSVince
 
[Files]
Source: psvince.dll; Flags: dontcopy
 
[Code]
function IsModuleLoaded(modulename: AnsiString ):  Boolean;
external 'IsModuleLoaded@files:psvince.dll stdcall';
 
function InitializeSetup(): Boolean;
begin
  if(IsModuleLoaded( 'notepad.exe' )) then
    begin
      MsgBox('Running', mbInformation, MB_OK);
      Result := false;
    end
  else
    begin
      MsgBox('Not running', mbInformation, MB_OK);
      Result := true;
    end
end;
 
2、 PSVince控件在64位系统(Windows 7/Server 2008/Server 2012)下无法检测到进程,使用下面的函数可以解决。
function IsAppRunning(const FileName : string): Boolean;
var
    FSWbemLocator: Variant;
    FWMIService   : Variant;
    FWbemObjectSet: Variant;
begin
    Result := false;
    FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator');
    FWMIService := FSWbemLocator.ConnectServer('', 'root\CIMV2', '', '');
    FWbemObjectSet := FWMIService.ExecQuery(Format('SELECT Name FROM Win32_Process Where Name="%s"',[FileName]));
    Result := (FWbemObjectSet.Count > 0);
    FWbemObjectSet := Unassigned;
    FWMIService := Unassigned;
    FSWbemLocator := Unassigned;
end;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Inno Setup是一种用于创建Windows安装程序的工具。当用户想要卸载一个已安装的程序时,Inno Setup卸载该程序并结束所有相关进程,以确保程序在完全卸载后不再运行。这是非常重要的,因为如果相关进程没有被终止,它们仍然可能在后台运行并占用系统资源,导致系统变慢或不稳定。 Inno Setup可以实现自动化地结束进程,无需用户手动关闭它们。它会检查正在运行的进程列表,找到与被卸载程序相关的进程,并尝试将它们全部关闭。这可以确保程序被卸载干净,系统不会留下任何残留文件或进程,从而保持系统的稳定性和安全性。 总之,Inno Setup卸载程序时会自动结束相关进程,从而确保程序被完全卸载,系统不会受到影响。它是一款强大的工具,可帮助用户轻松创建自定义的Windows安装程序。 ### 回答2: 当用户想要删除一个已安装的程序时,Inno Setup 会自动执行卸载程序。然而,在卸载过程中,可能会出现一些问题,如文件被占用等。这些问题可能会导致卸载程序无法成功卸载程序。为了解决这个问题,Inno Setup 提供了一个功能,可以结束任何还在运行的相关进程,以确保卸载程序能够成功卸载程序。 该功能称为“UninstallableFiles”和“UninstallableProcess”,它们可以被使用在“Inno Setup Script”中的“[UninstallDelete]”部分。这些功能会列出需要在卸载过程中被删除的文件和进程。在卸载程序时,Inno Setup 会检查这些文件和进程是否还在运行。如果是,它们将被结束并删除。否则,Inno Setup 会给出一个警告,告诉用户文件或进程正在运行,并提供一些选项来解决问题。 总之,Inno Setup 提供了一个非常有用的功能,可以确保卸载程序能够成功卸载程序,即使在出现问题时也如此。它使用“UninstallableFiles”和“UninstallableProcess”功能来结束任何还在运行的相关进程,以确保卸载程序能够成功卸载程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值