【发布时间】:2016-06-01 13:52:44
【问题描述】:
我正在尝试在我的 Inno Setup 项目中实现异步 WMI 查询。但我正在为事件定义而苦苦挣扎。我在线收到Type mismatcherror
objSink.OnCompleted := @WMI_OnCompleted;
我假设我的事件定义是错误的。如何为事件找到正确的对象类型?
procedure QueryWMIAsync(Qry: string; var objSink: Variant);
var
WbemLocator, WbemServices, WbemObjects: Variant;
begin
log('WMI AsyncQuery: '+Qry);
try
WbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
objSink.OnCompleted := @WMI_OnCompleted; //<----- Error: Type mismatch
objSink.OnObjectReady := @WMI_OnObjectReady;
WbemServices := WbemLocator.ConnectServer('localhost', 'root\CIMV2');
WbemServices.ExecQueryAsync(objSink, Qry);
except
MsgBox('ERROR on WMI Query <'+Qry+'>: '+GetExceptionMessage,mbError,MB_OK);
end;
end;
procedure WMI_OnCompleted(hResult: HRESULT; error: Variant; asyncContext: Variant);
begin
end;
【问题讨论】:
-
我不确定它是否可能。你到底想做什么?等待结果的时候你会做什么?
-
我希望在查询运行时显示图像,当用户点击它时,应该打开一个网页
-
哇。这是非常先进的东西,我喜欢它+1。但我认为这在 Inno Setup 中是不可能的。
标签: asynchronous inno-setup wmi-query