Partager via


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

Voir aussi

Fonctions de console

Consoles

AllocConsole

FreeConsole

GetConsoleProcessList