WMIでタスクスケジューラを列挙する方法
Posted: 2012年7月04日(水) 19:28
申し訳ありませんが、もう一点質問させてください。
タスクスケジューラのリストをWMIで取得したいのですが、以下のコードを実行してもwhileのループに入りません。(whileまでは到達しています)
調べたところWin32_ScheduledJobのセレクトで取得できると思うのですが・・・・
ご存知の方がいましたら教えていただけないでしょうか? よろしくお願いいたします。
タスクスケジューラのリストをWMIで取得したいのですが、以下のコードを実行してもwhileのループに入りません。(whileまでは到達しています)
調べたところWin32_ScheduledJobのセレクトで取得できると思うのですが・・・・
ご存知の方がいましたら教えていただけないでしょうか? よろしくお願いいたします。
BSTR bstrNamespace = (L"root\\cimv2");
if (CoCreateInstance (CLSID_WbemLocator,NULL ,CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER ,IID_IUnknown ,( void ** ) & pIWbemLocator) != S_OK) {
return false;
}
if (pIWbemLocator->ConnectServer(bstrNamespace, NULL, NULL, NULL, 0,NULL, NULL,&pWbemServices) != S_OK) {
return false;
}
HRESULT hRes;
BSTR strQuery = (L"Select * from Win32_ScheduledJob");
BSTR strQL = (L"WQL");
hRes = pWbemServices->ExecQuery(strQL, strQuery,WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumObject);
if (hRes != S_OK) {
return false;
}
hRes = pEnumObject->Reset();
if (hRes != S_OK) {
return false;
}
ULONG uCount = 1, uReturned;
IWbemClassObject* pClassObject = NULL;
while(pEnumObject->Next(WBEM_INFINITE,uCount, &pClassObject, &uReturned) == S_OK) {
//ここにこない?
}