Compartilhar via


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

Especifica um programa a ser executado se o trabalho entrar no estado BG_JOB_STATE_ERROR ou BG_JOB_STATE_TRANSFERRED . O BITS executa o programa no contexto do usuário que chamou esse método.

Sintaxe

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

Parâmetros

[in] Program

Cadeia de caracteres terminada em nulo que contém o programa a ser executado. O parâmetro pProgram é limitado a MAX_PATH caracteres, não incluindo o terminador nulo. Você deve especificar um caminho completo para o programa; o método não usará o caminho de pesquisa para localizar o programa.

Para remover a notificação de linha de comando, defina pProgram e pParameters como NULL. O método falhará se pProgram for NULL e pParameters não for NULL.

[in] Parameters

Cadeia de caracteres terminada em nulo que contém os parâmetros do programa no pProgram. O primeiro parâmetro deve ser o programa no pProgram (use aspas se o caminho usar nomes de arquivo longos). O parâmetro pParameters é limitado a 4.000 caracteres, sem incluir o terminador nulo. Este parâmetro pode ser NULL.

Retornar valor

Esse método retorna os seguintes valores HRESULT , bem como outros.

Código de retorno Descrição
S_OK
Êxito.
BG_E_INVALID_STATE
O estado do trabalho não pode ser BG_JOB_STATE_CANCELLED ou BG_JOB_STATE_ACKNOWLEDGED.
BG_E_STRING_TOO_LONG
A cadeia de caracteres pProgram ou pParameters é muito longa.

Comentários

O BITS chama a função CreateProcessAsUser para iniciar o programa.

Seu programa deve retornar um código de saída igual a zero. Se o programa não retornar um código de saída igual a zero, o BITS verificará o estado do trabalho. Se o programa não cancelou ou concluiu o trabalho, o BITS chamará o programa novamente depois que o atraso mínimo de repetição especificado para o trabalho expirar.

BITS 1.5 e anterior: O BITS chama o programa apenas uma vez.

Para executar um script, especifique WScript.exe (incluir o caminho completo para WScript.exe) no pProgram. O parâmetro pParameters deve incluir WScript.exe, o nome do script e quaisquer argumentos.

Se o programa exigir informações relacionadas ao trabalho, você deverá passar essas informações como argumentos. Não inclua variáveis de ambiente, como %system32%, em pProgram ou pParameters — elas não são expandidas.

Você deve incluir o caminho completo para o programa. Se qualquer um dos argumentos em pParameters incluir um caminho que usa nomes de arquivo longos, como o nome do módulo, use aspas ao redor do caminho.

Se o programa que você deseja executar usar o arquivo de resposta ou download, o programa deverá chamar o método IBackgroundCopyJob::Complete para disponibilizar os arquivos para o cliente.

Chame o método IBackgroundCopyJob::SetNotifyFlags para especificar quando executar o programa. Você pode solicitar a execução da linha de comando somente para eventos de erro de trabalho ou transferidos, não eventos de modificação de trabalho. Observe que o BITS ainda executa a linha de comando mesmo que você chame o método SetNotifyCmdLine após a ocorrência do evento.

Se o trabalho bits estiver em um contexto de conta de serviço (ou seja, networkservice/localsystem/localservice), nenhuma forma de retorno de chamada de linha de comando será executada.

Se você chamar o método SetNotifyCmdLine e o método IBackgroundCopyJob::SetNotifyInterface , o BITS executará a linha de comando somente se a interface de notificação se tornar inválida ou o método de notificação que o BITS chama retornar um código de falha. Por exemplo, se o método de notificação que o BITS chama retornar um E_FAIL, o BITS executará a linha de comando. No entanto, se o método de notificação retornar S_OK, o BITS não executará a linha de comando. Se o método de notificação e a solicitação de execução de linha de comando falharem, o BITS enviará a notificação novamente depois que o período mínimo de repetição expirar.

Observe que chamar o método IBackgroundCopyJob::TakeOwnership remove a notificação de linha de comando do trabalho.

Exemplos

Para obter um exemplo que chama o método SetNotifyCmdLine , consulte Registering to Execute a Program.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2003
Plataforma de Destino Windows
Cabeçalho bits1_5.h (inclua Bits.h)
Biblioteca Bits.lib
DLL BitsPrx2.dll
Redistribuível BITS 1.5 no Windows XP

Confira também

IBackgroundCopyJob2::GetNotifyCmdLine

IBackgroundCopyJob::SetNotifyFlags

IBackgroundCopyJob::SetNotifyInterface