Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt ein auszuführenes Programm an, wenn der Auftrag den BG_JOB_STATE_ERROR oder BG_JOB_STATE_TRANSFERRED Zustand eingibt. BITS führt das Programm im Kontext des Benutzers aus, der diese Methode aufgerufen hat.
Syntax
HRESULT SetNotifyCmdLine(
[in] LPCWSTR Program,
[in] LPCWSTR Parameters
);
Die Parameter
[in] Program
Null-beendete Zeichenfolge, die das auszuführende Programm enthält. Der pProgram-Parameter ist auf MAX_PATH Zeichen beschränkt, nicht auf den Null-Terminator. Sie sollten einen vollständigen Pfad zum Programm angeben; die Methode verwendet nicht den Suchpfad, um das Programm zu finden.
Um die Befehlszeilenbenachrichtigung zu entfernen, legen Sie "pProgram" und "pParameters" auf NULL fest. Die Methode schlägt fehl, wenn pProgramNULL ist und pParameters ungleich NULL ist.
[in] Parameters
Null-beendete Zeichenfolge, die die Parameter des Programms in pProgram enthält. Der erste Parameter muss das Programm in pProgram sein (verwenden Sie Anführungszeichen, wenn der Pfad lange Dateinamen verwendet). Der pParameters-Parameter ist auf 4.000 Zeichen beschränkt, nicht einschließlich des Null-Terminators. Dieser Parameter kann NULL-sein.
Rückgabewert
Diese Methode gibt die folgenden HRESULT-Werte sowie andere zurück.
| Rückgabecode | Description |
|---|---|
|
Erfolg. |
|
Der Status des Auftrags kann nicht BG_JOB_STATE_CANCELLED oder BG_JOB_STATE_ACKNOWLEDGED werden. |
|
Die pProgram - oder pParameters-Zeichenfolge ist zu lang. |
Bemerkungen
BITS ruft die CreateProcessAsUser-Funktion auf, um das Programm zu starten.
Ihr Programm sollte einen Exitcode von Null zurückgeben. Wenn Ihr Programm keinen Exitcode von Null zurückgibt, überprüft BITS den Status des Auftrags. Wenn das Programm den Auftrag nicht abgebrochen oder abgeschlossen hat, ruft BITS das Programm nach Ablauf der minimalen Wiederholungsverzögerung erneut auf.
BITS 1.5 und früher: BITS ruft das Programm nur einmal auf.
Um ein Skript auszuführen, geben Sie WScript.exe an (schließen Sie den vollständigen Pfad zu WScript.exe) in pProgram ein. Der Parameter pParameters sollte WScript.exe, den Skriptnamen und alle Argumente enthalten.
Wenn Für Ihr Programm auftragsbezogene Informationen erforderlich sind, müssen Sie diese Informationen als Argumente übergeben. Schließen Sie keine Umgebungsvariablen ein, z. B. %system32%, in pProgram oder pParameters – sie werden nicht erweitert.
Sie sollten den vollständigen Pfad zum Programm einschließen. Wenn eines der Argumente in pParameters einen Pfad enthält, der lange Dateinamen verwendet, z. B. den Modulnamen, verwenden Sie Anführungszeichen um den Pfad.
Wenn das auszuführende Programm die Antwort- oder Downloaddatei verwendet, muss das Programm die IBackgroundCopyJob::Complete-Methode aufrufen, um die Dateien für den Client verfügbar zu machen.
Rufen Sie die IBackgroundCopyJob::SetNotifyFlags-Methode auf, um anzugeben, wann das Programm ausgeführt werden soll. Sie können die Befehlszeilenausführung nur für Auftragsfehler- oder übertragene Ereignisse anfordern, nicht für Auftragsänderungsereignisse. Beachten Sie, dass BITS die Befehlszeile weiterhin ausführt, auch wenn Sie die SetNotifyCmdLine-Methode aufrufen, nachdem das Ereignis eintritt.
Wenn sich der BITS-Auftrag in einem Dienstkontokontext befindet (z. B. networkservice/localsystem/localservice), wird keine Form des Befehlszeilenrückrufs ausgeführt.
Wenn Sie sowohl die SetNotifyCmdLine-Methode als auch die IBackgroundCopyJob::SetNotifyInterface-Methode aufrufen, führt BITS die Befehlszeile nur aus, wenn die Benachrichtigungsschnittstelle ungültig wird oder die Benachrichtigungsmethode, die BITS aufruft, einen Fehlercode zurückgibt. Wenn beispielsweise die Benachrichtigungsmethode, die BITS aufruft, einen E_FAIL zurückgibt, führt BITS die Befehlszeile aus. Wenn die Benachrichtigungsmethode jedoch S_OK zurückgibt, führt BITS die Befehlszeile nicht aus. Wenn die Benachrichtigungsmethode und die Befehlszeilenausführungsanforderung beide fehlschlagen, sendet BITS die Benachrichtigung erneut, nachdem der mindeste Wiederholungszeitraum abgelaufen ist.
Beachten Sie, dass durch Aufrufen der IBackgroundCopyJob::TakeOwnership-Methode die Befehlszeilenbenachrichtigung aus dem Auftrag entfernt wird.
Examples
Ein Beispiel, das die SetNotifyCmdLine-Methode aufruft, finden Sie unter "Registrieren zum Ausführen eines Programms".
Anforderungen
| Anforderung | Wert |
|---|---|
| Mindestens unterstützter Client | Windows Vista |
| Mindestanforderungen für unterstützte Server | Windows Server 2003 |
| Zielplattform | Fenster |
| Header | bits1_5.h (bits.h einschließen) |
| Library | Bits.lib |
| DLL | BitsPrx2.dll |
| Weiterverteilbar | BITS 1.5 unter Windows XP |
Siehe auch
IBackgroundCopyJob2::GetNotifyCmdLine