学无先后达者为师!
不忘初心,砥砺前行。

在 Inno Setup 中检测指定的安全补丁是否安装

在使用 Inno Setup 制作应用程序安装包时,可以使用以下代码检测某个 Windows 补丁更新包是否已经安装:

function IsKBInstalled(KB: string): Boolean;
var
  WbemLocator: Variant;
  WbemServices: Variant;
  WQLQuery: string;
  WbemObjectSet: Variant;
begin
  WbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  WbemServices := WbemLocator.ConnectServer('', 'root\CIMV2');

  WQLQuery := 'select * from Win32_QuickFixEngineering where HotFixID = ''' + KB + '''';

  WbemObjectSet := WbemServices.ExecQuery(WQLQuery);
  Result := (not VarIsNull(WbemObjectSet)) and (WbemObjectSet.Count > 0);
end;

使用方式如下:

if IsKBInstalled('KB2919355') then
begin
  Log('KB2919355 is installed');
end
  else 
begin
  Log('KB2919355 is not installed');
end;

赞(0) 打赏
未经允许不得转载:码农很忙 » 在 Inno Setup 中检测指定的安全补丁是否安装

评论 1

  1. #1

    测试有用,感谢分享!

    qiuquan2年前 (2022-02-13)

给作者买杯咖啡

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册