AttachThreadInput-Funktion (winuser.h)

Fügt den Eingabeverarbeitungsmechanismus eines Threads an den eines anderen Threads an oder trennt diesen.

Syntax

BOOL AttachThreadInput(
  [in] DWORD idAttach,
  [in] DWORD idAttachTo,
  [in] BOOL  fAttach
);

Parameter

[in] idAttach

Der Bezeichner des Threads, der an einen anderen Thread angefügt werden soll. Der anzufügende Thread darf kein Systemthread sein.

[in] idAttachTo

Der Bezeichner des Threads, an den idAttach angefügt wird. Dieser Thread darf kein Systemthread sein.

Ein Thread kann sich nicht an sich selbst anfügen. Daher kann idAttachTo nicht gleich idAttach sein.

[in] fAttach

Wenn dieser Parameter TRUE ist, werden die beiden Threads angefügt. Wenn der Parameter FALSE ist, werden die Threads getrennt.

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.

Windows Server 2003 und Windows XP: Es gibt keine erweiterten Fehlerinformationen. Rufen Sie GetLastError nicht auf. Dieses Verhalten hat sich ab Windows Vista geändert.

Hinweise

Mithilfe der AttachThreadInput-Funktion kann ein Thread seine Eingabezustände (z. B. Tastaturzustände und das aktuelle Fokusfenster) für einen anderen Thread freigeben. Tastatur- und Mausereignisse, die von beiden Threads empfangen werden, werden in der Reihenfolge verarbeitet, in der sie empfangen wurden, bis die Threads getrennt werden, indem AttachThreadInput ein zweites Mal aufgerufen und FALSE für den fAttach-Parameter angegeben wird.

Die AttachThreadInput-Funktion schlägt fehl, wenn einer der angegebenen Threads keine Nachrichtenwarteschlange enthält. Das System erstellt die Nachrichtenwarteschlange eines Threads, wenn der Thread zum ersten Mal eine der USER- oder GDI-Funktionen aufruft. Die AttachThreadInput-Funktion schlägt auch fehl, wenn ein Journaldatensatz-Hook installiert ist. Journal Datensatzhaken alle Eingabewarteschlangen anfügen.

Beachten Sie, dass der Schlüsselzustand, der durch Aufrufe der Funktion GetKeyState oder GetKeyboardState ermittelt werden kann, nach einem Aufruf von AttachThreadInput zurückgesetzt wird. Sie können keinen Thread an einen Thread auf einem anderen Desktop anfügen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winuser.h (einschließlich Windows.h)
Bibliothek User32.lib
DLL User32.dll
APIs ext-ms-win-ntuser-misc-l1-2-0 (eingeführt in Windows 8.1)

Weitere Informationen

GetCurrentThreadId

GetKeyState

GetKeyboardState

GetWindowThreadProcessId

Prozess- und Threadfunktionen

SetFocus

Threads