Freigeben über


AttachConsole-Funktion

Fügt den Aufrufprozess an die Konsole des angegebenen Prozesses als Clientanwendung an.

Syntax

BOOL WINAPI AttachConsole(
  _In_ DWORD dwProcessId
);

Parameter

dwProcessId [in]
Der Bezeichner des Prozesses, dessen Konsole verwendet werden soll. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
pid Verwenden Sie die Konsole des angegebenen Prozesses.
ATTACH_PARENT_PROCESS (DWORD)-1 Verwenden Sie die Konsole des übergeordneten Elements des aktuellen Prozesses.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Ein Prozess kann an die meisten Konsolen angefügt werden. Wenn der Aufrufvorgang bereits an eine Konsole angefügt ist, ist der zurückgegebene Fehlercode ERROR_ACCESS_DENIED. Wenn der angegebene Prozess nicht über eine Konsole verfügt, wird der zurückgegebene Fehlercode ERROR_INVALID_HANDLE. Wenn der angegebene Prozess nicht vorhanden ist, wird der zurückgegebene Fehlercode ERROR_INVALID_PARAMETER.

Ein Prozess kann die FreeConsole-Funktion verwenden, um sich von der Konsole zu trennen. Wenn andere Prozesse die Konsole freigeben, wird die Konsole nicht zerstört, aber der Prozess, der als FreeConsole bezeichnet wird, kann nicht darauf verweisen. Eine Konsole wird geschlossen, wenn der letzte an sie angefügte Prozess beendet oder FreeConsole aufruft. Ein Prozess kann die FreeConsole-Funktion aufrufen, anschließend kann er dann AllocConsole aufrufen, um eine neue Konsole zu erstellen, oder AttachConsole, um eine andere Konsole anzufügen.

Diese Funktion ist in erster Linie für Anwendungen nützlich, die mit /SUBSYSTEM:WINDOWS verknüpft waren, was bedeutet, dass eine Konsole nicht benötigt wird, bevor Sie die Standard-Methode des Programms eingeben. In dieser Instanz ist der mit GetStdHandle abgerufene Standardhandles wahrscheinlich beim Start ungültig, bis AttachConsole aufgerufen wird. Die Ausnahme ist, wenn die Anwendung mit der Handle-Vererbung durch den übergeordneten Prozess gestartet wird.

Um eine Anwendung zu kompilieren, die diese Funktion verwendet, definieren Sie _WIN32_WINNT als 0x0501 oder höher. Weitere Informationen finden Sie unter Verwenden der Windows-Header.

Anforderungen

   
Unterstützte Mindestversion Client Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Header ConsoleApi.h (über WinCon.h, Windows.h einschließen)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Konsolenfunktionen

Konsolen

AllocConsole

FreeConsole

GetConsoleProcessList