Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Spécifie un programme à exécuter si le travail entre dans l’état BG_JOB_STATE_ERROR ou BG_JOB_STATE_TRANSFERRED . BITS exécute le programme dans le contexte de l’utilisateur qui a appelé cette méthode.
Syntaxe
HRESULT SetNotifyCmdLine(
[in] LPCWSTR Program,
[in] LPCWSTR Parameters
);
Paramètres
[in] Program
Chaîne terminée par null qui contient le programme à exécuter. Le paramètre pProgram est limité à MAX_PATH caractères, et n’inclut pas le point de terminaison Null. Vous devez spécifier un chemin d’accès complet au programme ; la méthode n’utilise pas le chemin de recherche pour localiser le programme.
Pour supprimer la notification de ligne de commande, définissez pProgram et pParameters sur NULL. La méthode échoue si pProgram est NULL et pParameters n’est pas NULL.
[in] Parameters
Chaîne terminée par null qui contient les paramètres du programme dans pProgram. Le premier paramètre doit être le programme dans pProgram (utilisez des guillemets si le chemin utilise des noms de fichiers longs). Le paramètre pParameters est limité à 4 000 caractères, sans inclure le terminateur Null. Ce paramètre peut être NULL.
Valeur retournée
Cette méthode retourne les valeurs HRESULT suivantes, ainsi que d’autres.
| Code de retour | Descriptif |
|---|---|
|
Opération réussie. |
|
L’état du travail ne peut pas être BG_JOB_STATE_CANCELLED ou BG_JOB_STATE_ACKNOWLEDGED. |
|
La chaîne pProgram ou pParameters est trop longue. |
Remarques
BITS appelle la fonction CreateProcessAsUser pour lancer le programme.
Votre programme doit retourner un code de sortie de zéro. Si votre programme ne retourne pas de code de sortie égal à zéro, BITS vérifie l’état du travail. Si le programme n’a pas annulé ou terminé le travail, BITS appelle à nouveau le programme après l’expiration du délai minimal de nouvelle tentative spécifié pour le travail.
BITS 1.5 et versions antérieures : BITS appelle le programme une seule fois.
Pour exécuter un script, spécifiez WScript.exe (incluez le chemin d’accès complet à WScript.exe) dans pProgram. Le paramètre pParameters doit inclure WScript.exe, le nom du script et tous les arguments.
Si votre programme nécessite des informations relatives au travail, vous devez transmettre ces informations en tant qu’arguments. N’incluez pas de variables d’environnement, telles que %system32%, dans pProgram ou pParameters , elles ne sont pas développées.
Vous devez inclure le chemin complet du programme. Si l’un des arguments de pParameters inclut un chemin d’accès qui utilise des noms de fichiers longs, tels que le nom du module, utilisez des guillemets autour du chemin.
Si le programme que vous souhaitez exécuter utilise le fichier de réponse ou de téléchargement, le programme doit appeler la méthode IBackgroundCopyJob ::Complete pour rendre les fichiers disponibles pour le client.
Appelez la méthode IBackgroundCopyJob ::SetNotifyFlags pour spécifier quand exécuter le programme. Vous pouvez demander l’exécution de ligne de commande uniquement pour les événements d’erreur de travail ou les événements transférés, et non pour les événements de modification du travail. Notez que BITS exécute toujours la ligne de commande même si vous appelez la méthode SetNotifyCmdLine après l’événement.
Si le travail BITS se trouve dans un contexte de compte de service (par exemple, networkservice/localsystem/localservice), aucune forme de rappel de ligne de commande n’est exécutée.
Si vous appelez à la fois la méthode SetNotifyCmdLine et la méthode IBackgroundCopyJob ::SetNotifyInterface , BITS exécute la ligne de commande uniquement si l’interface de notification devient non valide ou si la méthode de notification que BITS appelle retourne un code d’échec. Par exemple, si la méthode de notification que BITS appelle une E_FAIL, BITS exécute la ligne de commande. Toutefois, si la méthode de notification retourne S_OK, BITS n’exécute pas la ligne de commande. Si la méthode de notification et la demande d’exécution de ligne de commande échouent, BITS envoie à nouveau la notification une fois la période de nouvelle tentative minimale expirée.
Notez que l’appel de la méthode IBackgroundCopyJob ::TakeOwnership supprime la notification de ligne de commande du travail.
Examples
Pour obtenir un exemple qui appelle la méthode SetNotifyCmdLine , consultez Registering to Execute a Program.
Spécifications
| Requirement | Valeur |
|---|---|
| Client minimum requis | Windows Vista |
| Serveur minimal pris en charge | Windows Server 2003 |
| plateforme cible | Fenêtres |
| Header | bits1_5.h (include Bits.h) |
| Library | Bits.lib |
| DLL | BitsPrx2.dll |
| Composant redistribuable | BITS 1.5 sur Windows XP |
Voir aussi
IBackgroundCopyJob2 ::GetNotifyCmdLine