Метод 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 ограничен 4000 символами, не включая признак конца null. Этот параметр может принимать значение NULL.

Возвращаемое значение

Этот метод возвращает следующие значения HRESULT , а также другие.

Код возврата Описание
S_OK
Успешно.
BG_E_INVALID_STATE
Состояние задания не может быть BG_JOB_STATE_CANCELLED или BG_JOB_STATE_ACKNOWLEDGED.
BG_E_STRING_TOO_LONG
Строка pProgram или pParameters слишком длинна.

Комментарии

BITS вызывает функцию CreateProcessAsUser для запуска программы.

Программа должна возвращать код выхода, равный нулю. Если программа не возвращает нулевой код выхода, BITS проверяет состояние задания. Если программа не отменила или не завершила задание, BITS снова вызывает программу после истечения минимальной задержки повтора , указанной для задания.

BITS 1.5 и более ранние версии: BITS вызывает программу только один раз.

Чтобы выполнить скрипт, укажите WScript.exe (включить полный путь к WScript.exe) в pProgram. Параметр pParameters должен содержать WScript.exe, имя скрипта и все аргументы.

Если вашей программе требуется информация, связанная с заданием, необходимо передать эти сведения в качестве аргументов. Не включайте переменные среды, такие как %system32%, в pProgram или pParameters — они не разворачиваются.

Необходимо включить полный путь к программе. Если какой-либо из аргументов в pParameters содержит путь, использующий длинные имена файлов, например имя модуля, используйте кавычки вокруг пути.

Если программа, которую вы хотите выполнить, использует файл ответа или скачивания, программа должна вызвать метод IBackgroundCopyJob::Complete , чтобы сделать файлы доступными для клиента.

Вызовите метод IBackgroundCopyJob::SetNotifyFlags , чтобы указать время выполнения программы. Запросить выполнение из командной строки можно только для ошибок задания или перенесенных событий, а не для событий изменения задания. Обратите внимание, что BITS по-прежнему выполняет командную строку, даже если после возникновения события вызывается метод SetNotifyCmdLine .

Если задание 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
Header bits1_5.h (включая Bits.h)
Библиотека Bits.lib
DLL BitsPrx2.dll
Распространяемые компоненты BITS 1.5 в Windows XP

См. также раздел

IBackgroundCopyJob2::GetNotifyCmdLine

IBackgroundCopyJob::SetNotifyFlags

IBackgroundCopyJob::SetNotifyInterface