Metodo IBackgroundCopyJob2::SetNotifyCmdLine (bits1_5.h)
Specifica un programma da eseguire se il processo entra nello stato BG_JOB_STATE_ERROR o BG_JOB_STATE_TRANSFERRED . BITS esegue il programma nel contesto dell'utente che ha chiamato questo metodo.
Sintassi
HRESULT SetNotifyCmdLine(
[in] LPCWSTR Program,
[in] LPCWSTR Parameters
);
Parametri
[in] Program
Stringa con terminazione Null che contiene il programma da eseguire. Il parametro pProgram è limitato a MAX_PATH caratteri, senza includere il carattere di terminazione Null. È necessario specificare un percorso completo per il programma; il metodo non userà il percorso di ricerca per individuare il programma.
Per rimuovere la notifica della riga di comando, impostare pProgram e pParameters su NULL. Il metodo ha esito negativo se pProgram è NULL e pParameters è diverso da NULL.
[in] Parameters
Stringa con terminazione Null che contiene i parametri del programma in pProgram. Il primo parametro deve essere il programma in pProgram (usare le virgolette se il percorso usa nomi di file lunghi). Il parametro pParameters è limitato a 4.000 caratteri, senza includere il carattere di terminazione Null. Questo parametro può essere NULL.
Valore restituito
Questo metodo restituisce i valori HRESULT seguenti, nonché altri.
Codice restituito | Descrizione |
---|---|
|
Operazione completata. |
|
Lo stato del processo non può essere BG_JOB_STATE_CANCELLED o BG_JOB_STATE_ACKNOWLEDGED. |
|
La stringa pProgram o pParameters è troppo lunga. |
Commenti
BITS chiama la funzione CreateProcessAsUser per avviare il programma.
Il programma deve restituire un codice di uscita pari a zero. Se il programma non restituisce un codice di uscita pari a zero, BITS controlla lo stato del processo. Se il programma non ha annullato o completato il processo, BITS chiama nuovamente il programma dopo la scadenza del ritardo minimo dei tentativi specificato per il processo.
BITS 1.5 e versioni precedenti: BITS chiama il programma una sola volta.
Per eseguire uno script, specificare WScript.exe (includere il percorso completo per WScript.exe) in pProgram. Il parametro pParameters deve includere WScript.exe, il nome dello script e gli argomenti.
Se il programma richiede informazioni correlate al processo, è necessario passare queste informazioni come argomenti. Non includere variabili di ambiente, ad esempio %system32%, in pProgram o pParameters , che non vengono espanse.
È necessario includere il percorso completo del programma. Se uno degli argomenti in pParameters include un percorso che usa nomi di file lunghi, ad esempio il nome del modulo, usare le virgolette intorno al percorso.
Se il programma che si vuole eseguire usa il file di risposta o download, il programma deve chiamare il metodo IBackgroundCopyJob::Complete per rendere disponibili i file al client.
Chiamare il metodo IBackgroundCopyJob::SetNotifyFlags per specificare quando eseguire il programma. È possibile richiedere l'esecuzione della riga di comando solo per gli eventi di errore del processo o trasferiti, non per gli eventi di modifica del processo. Si noti che BITS esegue ancora la riga di comando anche se si chiama il metodo SetNotifyCmdLine dopo che si verifica l'evento.
Se il processo BITS si trova in un contesto dell'account del servizio (ad esempio, networkservice/localsystem/localservice), non verrà eseguito alcun tipo di callback della riga di comando.
Se si chiama sia il metodo SetNotifyCmdLine che il metodo IBackgroundCopyJob::SetNotifyInterface , BITS eseguirà la riga di comando solo se l'interfaccia di notifica diventa non valida o il metodo di notifica che le chiamate BITS restituisce un codice di errore. Ad esempio, se il metodo di notifica che chiama BITS restituisce un E_FAIL, BITS eseguirà la riga di comando. Tuttavia, se il metodo di notifica restituisce S_OK, BITS non eseguirà la riga di comando. Se la richiesta di esecuzione del metodo di notifica e della riga di comando ha esito negativo, BITS invierà nuovamente la notifica dopo la scadenza del periodo minimo di ripetizione.
Si noti che la chiamata al metodo IBackgroundCopyJob::TakeOwnership rimuove la notifica della riga di comando dal processo.
Esempio
Per un esempio che chiama il metodo SetNotifyCmdLine , vedere Registrazione in Execute a Program.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista |
Server minimo supportato | Windows Server 2003 |
Piattaforma di destinazione | Windows |
Intestazione | bits1_5.h (include Bits.h) |
Libreria | Bits.lib |
DLL | BitsPrx2.dll |
Componente ridistribuibile | BITS 1.5 in Windows XP |
Vedi anche
IBackgroundCopyJob2::GetNotifyCmdLine