請教有關 ITaskScheduler 排程問題 |
缺席
|
skywillnosky
一般會員 發表:12 回覆:11 積分:4 註冊:2012-12-14 發送簡訊給我 |
看到版上有人詢問排程問題
delphi.ktop.com.tw/board.php 可惜我的問題出在不一樣的地方 我是出在更前面的地方 以下是片段程式碼 MsTask.pas CLSID_CTask: TGuid = '{148BD520-A2AB-11CE-B11F-00AA00530503}'; {$EXTERNALSYM CLSID_CTask} CLSID_CTaskScheduler: TGuid = '{148BD52A-A2AB-11CE-B11F-00AA00530503}'; {$EXTERNALSYM CLSID_CTaskScheduler} MyTaskMgr.pas WorkItem: IUnknown; Task: ITask; ... CLSID_CTask2 := CLSID_CTask; IID_IScheduledWorkItem2 := IID_IScheduledWorkItem; ...SchedulingAgent.NewWorkItem(StrToWide(TaskName), CLSID_CTask2, IID_IScheduledWorkItem2, WorkItem); Task := ITask(WorkItem); 出問題的條件是在 OS:Win server 2003 R2 stanard edition (非常詭異,其他的WIN OS都不會有問題) 從LOG看出來WorkItem為nil 連帶導致Task為nil 後續用到Task的函數就會跳出以下錯誤 [Access voilation a address 當前EXE read of address 00000...] 首先 確定TaskName不是空字串 再來試過將CLSID_CTask: TGuid = '{148BD520-A2AB-11CE-B11F-00AA00530503}'; 改成CLSID_CTask: TGuid = '{148BD520-A2AB-11CE-B11F-00AA00530513}'; 確實WorkItem會變成Nil 可是取不到CLSID_CTask和IID_IScheduledWorkItem的情況我不知道要怎麼模擬出來 請問甚麼情況會取不到CLSID_CTask和IID_IScheduledWorkItem? 是否有可能是相關的dll檔版本過舊或是損壞? ------------------------------------- 已經找到答案了,是該帳號權限不足,連手動新增排程都會被存取被拒。 雖然沒人回答,不過還是貼上來讓有發生一樣問題的人參考。 編輯記錄
skywillnosky 重新編輯於 2013-01-11 04:51:10, 註解 無‧
skywillnosky 重新編輯於 2013-01-11 04:51:53, 註解 無‧ skywillnosky 重新編輯於 2013-01-11 05:24:52, 註解 無‧ skywillnosky 重新編輯於 2013-01-15 03:45:43, 註解 無‧ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |