有没有办法检查是否使用Inno Setup安装了防病毒软件?
发布于 2013-07-14 10:04:00
可以使用AntiVirusProduct WMI类,具体取决于必须连接到root\SecurityCenter或root\SecurityCenter2命名空间的窗口版本。
有关更多详细信息,请查看本文 Getting the installed Antivirus, AntiSpyware and Firewall software using Delphi and the WMI
注意: Windows类仅支持AntiVirusProduct桌面版(Windows XP、Windows Vista、7、8)。
请尝试此示例。
function IsAntivirusInstalled: Boolean;
var
FSWbemLocator: Variant;
FWMIService : Variant;
FWbemObjectSet: Variant;
Version: TWindowsVersion;
begin
GetWindowsVersionEx(Version);
Result := false;
FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator');
if (Version.Major = 5) and (Version.Minor = 1) then //Windows XP
FWMIService := FSWbemLocator.ConnectServer('', 'root\SecurityCenter', '', '')
else
if (Version.Major = 6) then
FWMIService := FSWbemLocator.ConnectServer('', 'root\SecurityCenter2', '', '')
else
exit;
FWbemObjectSet := FWMIService.ExecQuery('SELECT displayName FROM AntiVirusProduct');
Result := (FWbemObjectSet.Count > 0);
FWbemObjectSet := Unassigned;
FWMIService := Unassigned;
FSWbemLocator := Unassigned;
end;https://stackoverflow.com/questions/17628901
复制相似问题