IBackgroundCopyJob2::SetNotifyCmdLine 方法 (bits1_5.h)
指定作業進入 BG_JOB_STATE_ERROR 或 BG_JOB_STATE_TRANSFERRED 狀態時所要執行的程式。 BITS 會在呼叫這個方法的用戶內容中執行程式。
語法
HRESULT SetNotifyCmdLine(
[in] LPCWSTR Program,
[in] LPCWSTR Parameters
);
參數
[in] Program
包含要執行之程式的 Null 終止字串。 pProgram 參數限制為MAX_PATH個字元,不包括 Null 終止符。 您應該指定程式的完整路徑;方法不會使用搜尋路徑來尋找程式。
若要移除命令行通知,請將 pProgram 和 pParameters 設定為 NULL。 如果 pProgram 為 NULL 且 pParameters 為非 NULL,則方法會失敗。
[in] Parameters
Null 終止的字串,其中包含 pProgram 中的程序參數。 如果路徑使用長檔名) ,則第一個參數必須是 pProgram 中的程式, (使用引號。 pParameters 參數限制為 4,000 個字元,不包括 Null 終止符。 此參數可以是 Null。
傳回值
這個方法會傳回下列 HRESULT 值,以及其他值。
傳回碼 | Description |
---|---|
|
成功。 |
|
作業的狀態不能 BG_JOB_STATE_CANCELLED 或 BG_JOB_STATE_ACKNOWLEDGED。 |
|
pProgram 或 pParameters 字串太長。 |
備註
BITS 會呼叫 CreateProcessAsUser 函式來啟動程式。
您的程式應該會傳回零的結束代碼。 如果您的程式未傳回零的結束代碼,BITS 會檢查作業的狀態。 如果程式未取消或完成作業,BITS 會在為作業指定的 最小重試延遲 到期之後再次呼叫程式。
BITS 1.5 和更早版本: BITS 只會呼叫程式一次。
若要執行文稿,請指定 WScript.exe (包含 pProgram 中 WScript.exe) 的完整路徑。 pParameters 參數應該包含 WScript.exe、腳本名稱和任何自變數。
如果您的程式需要作業相關信息,您必須將此資訊當作自變數傳遞。 請勿在 pProgram 或 pParameters 中包含環境變數,例如 %system32%,它們不會展開。
您應該包含程式的完整路徑。 如果 pParameters 中的任何自變數包含使用長檔名的路徑,例如模組名稱,請使用路徑的引號。
如果您想要執行的程式使用回復或下載檔案,程式必須呼叫 IBackgroundCopyJob::Complete 方法,讓檔案可供用戶端使用。
呼叫 IBackgroundCopyJob::SetNotifyFlags 方法來指定何時執行程式。 您只能針對作業錯誤或傳送的事件要求命令行執行,而不是作業修改事件。 請注意,即使您在事件發生後呼叫 SetNotifyCmdLine 方法,BITS 仍會執行命令行。
如果 BITS 作業位於服務帳戶內容中, (亦即,networkservice/localsystem/localservice) ,則不會執行任何形式的命令行回呼。
如果您同時呼叫 SetNotifyCmdLine 方法和 IBackgroundCopyJob::SetNotifyInterface 方法,則只有在通知介面變成無效或 BITS 呼叫的通知方法傳回失敗碼時,BITS 才會執行命令行。 例如,如果 BITS 呼叫的通知方法傳回E_FAIL,BITS 就會執行命令行。 不過,如果通知方法傳回 S_OK,BITS 將不會執行命令行。 如果通知方法和命令行執行要求都失敗,BITS 會在最小重試期間到期之後再次傳送通知。
請注意,呼叫 IBackgroundCopyJob::TakeOwnership 方法會從作業中移除命令行通知。
範例
如需呼叫 SetNotifyCmdLine 方法的範例,請參閱 註冊以執行程式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2003 |
目標平台 | Windows |
標頭 | bits1_5.h (包含 Bits.h) |
程式庫 | Bits.lib |
Dll | BitsPrx2.dll |
可轉散發套件 | Windows XP 上的 BITS 1.5 |
另請參閱
IBackgroundCopyJob2::GetNotifyCmdLine