Fonction AttachConsole
Attache le processus appelant à la console du processus spécifié en tant qu’application cliente.
Syntaxe
BOOL WINAPI AttachConsole(
_In_ DWORD dwProcessId
);
Paramètres
dwProcessId [entrée]
L’identificateur du processus dont la console doit être utilisée. Ce paramètre peut prendre les valeurs suivantes.
Valeur | Signification |
---|---|
pid | Utilisez la console du processus spécifié. |
ATTACH_PARENT_PROCESS (DWORD)-1 |
Utilisez la console du parent du processus Moderne. |
Valeur retournée
Si la fonction réussit, la valeur de retour est différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Notes
Un processus ne peut être attaché qu’à une seule console. Si le processus appelant est déjà attaché à une console, le code d’erreur renvoyé est ERROR_ACCESS_DENIED. Si le processus spécifié n’a pas de console, le code d’erreur renvoyé est ERROR_INVALID_HANDLE. Si le processus spécifié n’a pas de console, le code d’erreur renvoyé est ERROR_INVALID_HANDLE.
Un processus peut utiliser la fonction FreeConsole pour se détacher de sa console. Si d’autres processus partagent la console, la console n’est pas détruite, mais le processus qui a appelé la fonction FreeConsole ne peut pas y faire référence. Une console est fermée lorsque le dernier processus qui y est attaché se termine ou appelle la fonction FreeConsole. Après avoir appelé la fonction FreeConsole, un processus peut utiliser la fonction AllocConsole pour créer une nouvelle console ou la fonction AttachConsole pour effectuer l’attachement à une autre console.
Cette fonction est principalement utile pour les applications liées à /SUBSYSTEM:WINDOWS, qui indique au système d'exploitation qu'une console n'est pas nécessaire avant d'entrer dans la méthode principale du programme. Dans cette instance, les descripteurs standard récupérés avec GetStdHandle ne seront probablement pas valides au démarrage jusqu’à ce que la fonction AttachConsole soit appelé. L’exception à ce principe est le cas où l’application est lancée avec l’héritage d’un descripteur par son processus parent.
Pour compiler une application qui utilise cette fonction, définissez _WIN32_WINNT sur 0x0501
ou une version ultérieure. Pour plus d’informations, consultez Utilisation des en-têtes Windows.
Spécifications
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
En-tête | ConsoleApi.h (via WinCon.h, inclure Windows.h) |
Bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |