在task scheduler 1.0之中,提供了這麼乙個com物件來讓開發者操作任務計畫項。一般而言,我們可以直接通過此物件呼叫相應的介面來刪除、建立、修改、遍歷某些任務計畫項等等。但是要注意,task scheduler 1.0在vista及其以上系統中僅僅可以操作其中的一部分,正如之前所羅列的,僅當這些任務計畫項的配置為xp等低版本的windows系統的時候才可以完全由其操作,如圖所示。因此,要想操作vista及其以上系統裡的所有任務計畫項,那麼請使用task schduler 2.0。對於taskscheduler 1.0而言,開發包括了以下常見步驟,如下所示:
coinitialize(null);
**片段如下所示:
coinitializesecurity(
null,
-1,null,
null,
rpc_c_authn_level_pkt_privacy,
rpc_c_imp_level_impersonate,
null,
0,null
);
itaskscheduler *m_pits=null;
cocreateinstance(clsid_ctaskscheduler,
null,
clsctx_inproc_server,
iid_itaskscheduler,
(void ** )&m_pits);
ipersistfile *pipersistfile;
m_hresult = pitask->queryinte***ce(iid_ipersistfile, (void
** )&pipersistfile);
if (succeeded(m_hresult))
}pipersistfile->release();
注意事項:第一,com物件縱使不執行release()
,也是不會被vld等記憶體洩漏檢測庫檢測到記憶體洩漏的,因為這些物件本身就是駐留在作業系統上的,所以為了處理由於忘記釋放這個com物件引起的諸多問題,建議養成一種習慣,在各個com物件的後面新增上***->release();
語句,當然,你也可以使用智慧型指標來管理這麼乙個過程。第二,重申一點關於修改某個任務計畫項的問題,必須使用ipersistfile物件來將更改應用到作業系統上。比方說,在xp系統下,我們可以明確看到,其任務計畫管理器上會有乙個「應用」按鈕,實質就是通過ipersistfile物件來將當前對任務計畫項的修改應用到作業系統之上。第三,msdn上面已經提供了一些常用的task scheduler 1.0的各種操作方法了,建議直接閱讀這些樣例工程來學習task scheduler 1.0的開發。
前言 TaskScheduler 說明
這是乙個系列的文章,是本人在開發 優化加速 模組的其中乙個子功能 管理windows系統下的任務計畫項 的時候留下的筆記,經過整理之後才發布出來的。畢竟在開發此功能的過程中,也多得益於前輩們的知識分享,因此,也希望這些文章可以幫助到有需要的童鞋吧o o 考慮到目前為止,windows使用者基本過渡到...
C 非同步程式設計TaskScheduler
當乙個task需要執行時,首先需要新增到taskscheduler類的乙個佇列中排隊,taskscheduler會從佇列中取task,放到執行緒中執行,預設情況下的taskscheduler會將task放到執行緒池中的執行緒上執行。task.start和task.continuewith都包含了可以...
Task Scheduler及IIS的認知
task scheduler任務排程程式 win7系統自帶的計畫任務功能 幫助使用者計畫性的進行一些任務操作 一般不建議關閉 使使用者可以在此計算機上配置和計畫自動任務 若此服務被禁用,則依賴它的所有服務將無法啟動 iis internet information services 網際網路資訊服務...