【问题标题】:Async WMI Query in Inno SetupInno 设置中的异步 WMI 查询
【发布时间】: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


【解决方案1】:

根据 Inno Setup 新闻组的说法,这实际上似乎是不可能的。至少按照我的方法:

http://news.jrsoftware.org/read/article.php?id=30095&group=jrsoftware.innosetup.code#30095

【讨论】:

    猜你喜欢
    • 2022-06-12
    • 1970-01-01
    • 2011-09-15
    • 2015-03-05
    • 1970-01-01
    • 2015-07-07
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多