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 |
---|---|
|
Êxito. |
|
O estado do trabalho não pode ser BG_JOB_STATE_CANCELLED ou BG_JOB_STATE_ACKNOWLEDGED. |
|
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