- HOME
- Post in | c/c++
- Post at | 2014. 3. 5. 18:36 | by 밀크빵.
- View comment
c++ 작업 스케줄러 동작 추가
작업 스케줄러를 사용하면
동작 탭에 등록된 작업을 수행하게 된다.
현재 등록되어 있는 작업의 경우
c:\windows\system32\notepad.exe를 실행하는 작업만 등록되어 있는데
한가지 작업에서 여러가지 동작을 수행할 수 있다.
* 여러개로 등록된 동작은 순차적으로 동작 함.
예) 아래 그림에 있는 동작의 순서는 NOTEPAD.EXE가 종료 되면, winver.exe가 실행이 된다.
동작을 생성하는 방법은
이미 만들었던 IActionCollection 인터페이스에 Create()로 새로운 동작을 추가해주는 것이다.
Create로 만들 수 있는 동작의 종류는 아래와 같다.
그리고 맨 처음 동작 추가와 동일한 방식으로
동작을 추가해 준다
// Create the action, specifying that it is an executable action. IAction *pAction1 = NULL; hr = pActionCollection->Create( TASK_ACTION_EXEC, &pAction1 ); pActionCollection->Release(); if( FAILED(hr) ) { printf("\nCannot create the action: %x", hr ); pRootFolder->Release(); pTask->Release(); CoUninitialize(); return 1; } IExecAction *pExecAction1 = NULL; // QI for the executable task pointer. hr = pAction1->QueryInterface( IID_IExecAction, (void**) &pExecAction1 ); pAction1->Release(); if( FAILED(hr) ) { printf("\nQueryInterface call failed for IExecAction: %x", hr ); pRootFolder->Release(); pTask->Release(); CoUninitialize(); return 1; } // Get the windows directory and set the path to notepad.exe. wstring wstrWinVerExecutablePath = _wgetenv( L"WINDIR"); wstrWinVerExecutablePath += L"\\SYSTEM32\\winver.exe"; // Set the path of the executable to notepad.exe. hr = pExecAction1->put_Path( _bstr_t( wstrWinVerExecutablePath.c_str() ) ); pExecAction1->Release(); if( FAILED(hr) ) { printf("\nCannot set path of executable: %x", hr ); pRootFolder->Release(); pTask->Release(); CoUninitialize(); return 1; }
|
'c/c++' 카테고리의 다른 글
미리 컴파일된 헤더 사용 (0) | 2014.05.21 |
---|---|
windows 버전 체크 (0) | 2014.03.11 |
c++ 작업 스케줄러 > 가장 높은 수준의 권한으로 실행 (0) | 2014.03.05 |
c++ 관리자 권한으로 프로그램 실행시키는 방법 (0) | 2014.03.03 |
스레드 생성 (0) | 2013.04.05 |