Compartir a través de


Método IBackgroundCopyJob2::SetNotifyCmdLine (bits1_5.h)

Especifica un programa que se va a ejecutar si el trabajo entra en el estado BG_JOB_STATE_ERROR o BG_JOB_STATE_TRANSFERRED . BITS ejecuta el programa en el contexto del usuario que llamó a este método.

Sintaxis

HRESULT SetNotifyCmdLine(
  [in] LPCWSTR Program,
  [in] LPCWSTR Parameters
);

Parámetros

[in] Program

Cadena terminada en NULL que contiene el programa que se va a ejecutar. El parámetro pProgram se limita a MAX_PATH caracteres, no incluido el terminador null. Debe especificar una ruta de acceso completa al programa; el método no usará la ruta de búsqueda para buscar el programa.

Para quitar la notificación de línea de comandos, establezca pProgram y pParameters en NULL. El método produce un error si pProgram es NULL y pParameters no es NULL.

[in] Parameters

Cadena terminada en NULL que contiene los parámetros del programa en pProgram. El primer parámetro debe ser el programa en pProgram (use comillas si la ruta de acceso usa nombres de archivo largos). El parámetro pParameters está limitado a 4000 caracteres, no incluido el terminador null. Este parámetro puede ser NULL.

Valor devuelto

Este método devuelve los siguientes valores HRESULT , así como otros.

Código devuelto Descripción
S_OK
Correcto.
BG_E_INVALID_STATE
El estado del trabajo no puede ser BG_JOB_STATE_CANCELLED ni BG_JOB_STATE_ACKNOWLEDGED.
BG_E_STRING_TOO_LONG
La cadena pProgram o pParameters es demasiado larga.

Comentarios

BITS llama a la función CreateProcessAsUser para iniciar el programa.

El programa debe devolver un código de salida de cero. Si el programa no devuelve un código de salida de cero, BITS comprueba el estado del trabajo. Si el programa no canceló o completó el trabajo, BITS vuelve a llamar al programa después de que expire el retraso mínimo de reintento especificado para el trabajo.

BITS 1.5 y versiones anteriores: BITS llama al programa solo una vez.

Para ejecutar un script, especifique WScript.exe (incluya la ruta de acceso completa a WScript.exe) en pProgram. El parámetro pParameters debe incluir WScript.exe, el nombre del script y los argumentos.

Si el programa requiere información relacionada con el trabajo, debe pasar esta información como argumentos. No incluya variables de entorno, como %system32%, en pProgram o pParameters ; no se expanden.

Debe incluir la ruta de acceso completa al programa. Si alguno de los argumentos de pParameters incluye una ruta de acceso que usa nombres de archivo largos, como el nombre del módulo, use comillas alrededor de la ruta de acceso.

Si el programa que desea ejecutar utiliza el archivo de respuesta o descarga, el programa debe llamar al método IBackgroundCopyJob::Complete para que los archivos estén disponibles para el cliente.

Llame al método IBackgroundCopyJob::SetNotifyFlags para especificar cuándo ejecutar el programa. Solo puede solicitar la ejecución de la línea de comandos para eventos de error de trabajo o eventos transferidos, no eventos de modificación de trabajos. Tenga en cuenta que BITS sigue ejecutando la línea de comandos incluso si llama al método SetNotifyCmdLine después de que se produzca el evento.

Si el trabajo de BITS está en un contexto de cuenta de servicio (es decir, networkservice/localsystem/localservice), no se ejecutará ninguna forma de devolución de llamada de línea de comandos.

Si llama al método SetNotifyCmdLine y al método IBackgroundCopyJob::SetNotifyInterface , BITS ejecutará la línea de comandos solo si la interfaz de notificación deja de ser válida o el método de notificación que BITS llama devuelve un código de error. Por ejemplo, si el método de notificación al que BITS llama devuelve un E_FAIL, BITS ejecutará la línea de comandos. Sin embargo, si el método de notificación devuelve S_OK, BITS no ejecutará la línea de comandos. Si se produce un error en el método de notificación y la solicitud de ejecución de la línea de comandos, BITS enviará la notificación de nuevo después de que expire el período de reintento mínimo.

Tenga en cuenta que al llamar al método IBackgroundCopyJob::TakeOwnership se quita la notificación de la línea de comandos del trabajo.

Ejemplos

Para obtener un ejemplo que llama al método SetNotifyCmdLine , vea Registrar para ejecutar un programa.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2003
Plataforma de destino Windows
Encabezado bits1_5.h (incluir Bits.h)
Library Bits.lib
Archivo DLL BitsPrx2.dll
Redistribuible BITS 1.5 en Windows XP

Consulte también

IBackgroundCopyJob2::GetNotifyCmdLine

IBackgroundCopyJob::SetNotifyFlags

IBackgroundCopyJob::SetNotifyInterface