gpt4 book ai didi

delphi - 我如何检查我的系统中是否安装了特定的修补程序(Windows 更新)?

转载 作者:行者123 更新时间:2023-12-03 15:07:56 26 4
gpt4 key购买 nike

我的应用程序使用的 Riched20.dll 文件存在一些问题,该问题已通过 KB884047 修复。修复程序,为了避免旧Windows版本出现问题,我想检测系统中何时应用了此修复程序,那么我如何使用delphi检查我的系统中是否安装了特定的修复程序(Windows更新)?

最佳答案

前段时间,我在博客上讨论过这个话题search for installed windows updates using Delphi, WMI and WUA

关键是使用Windows Update Agent API

检查此示例代码。

//use in this way ISHotFixID_Installed('KB982799')
function ISHotFixID_Installed(const HotFixID : string): Boolean;
var
updateSession : OleVariant;
updateSearcher : OleVariant;
updateEntry : OleVariant;
updateSearchResult : OleVariant;
UpdateCollection : OleVariant;
oEnum : IEnumvariant;
iValue : LongWord;
begin
result:=False;
updateSession:= CreateOleObject('Microsoft.Update.Session');
updateSearcher := updateSession.CreateUpdateSearcher;
//this line improves the performance , the online porperty indicates whether the UpdateSearcher goes online to search for updates. so how we are looking for already installed updates we can set this value to false
updateSearcher.online:=False;
updateSearchResult:= updateSearcher.Search(Format('IsInstalled = 1 and Type=%s',[QuotedStr('Software')]));
UpdateCollection := updateSearchResult.Updates;
oEnum := IUnknown(UpdateCollection._NewEnum) as IEnumVariant;
while oEnum.Next(1, updateEntry, iValue) = 0 do
begin
Result:=Pos(HotFixID,updateEntry.Title)>0;
updateEntry:=Unassigned;
if Result then break;
end;

end;

关于delphi - 我如何检查我的系统中是否安装了特定的修补程序(Windows 更新)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5972149/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com