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. Esse parâmetro pode ser NULL.

Valor de retorno

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

Código de retorno Description
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.

Observações

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

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

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

Para executar um script, especifique WScript.exe (inclua 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 apenas 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 se você chamar 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 chamado pelo BITS 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 após 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 Registring to Execute a Program.

Requirements

Requirement Value
Cliente mínimo suportado Windows Vista
Servidor mínimo compatível Windows Server 2003
da Plataforma de Destino Windows
Header bits1_5.h (inclua Bits.h)
Library Bits.lib
de DLL BitsPrx2.dll
Redistribuível BITS 1.5 no Windows XP

Consulte também

IBackgroundCopyJob2::GetNotifyCmdLine

IBackgroundCopyJob::SetNotifyFlags

IBackgroundCopyJob::SetNotifyInterface