2016-06-01 5 views
3

Inno Setupプロジェクトで非同期WMIクエリを実装しようとしています。しかし、私はイベントの定義に苦労しています。私は私が私のイベント定義が間違っていると仮定していますInnoの非同期WMIクエリ

objSink.OnCompleted := @WMI_OnCompleted;

ライン上Type mismatchエラーを取得しています。イベントの正しいオブジェクトタイプを見つけるにはどうすればよいですか?

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; 
+0

私はそのことも可能わかりません。とにかく何をしたいですか?結果を待っている間にあなたは何をしますか? –

+0

私はクエリが実行されている間に画像を表示したいと思います。ユーザーがそれをクリックすると、Webページが開かれます –

+0

うわー。これは本当に高度なものですが、私は+1が好きです。しかし、Inno Setupではそれができないと思います。 – Slappy

答えて