Ja, das ist die einzige Möglichkeit, die mir bekannt ist.
Aber Sie müssen damit umgehen, dass GFW NULL zurückgeben kann. In der Regel tritt dies auf, wenn ein anderer Desktop (z. B. der Bildschirmschoner-Desktop) aktiv ist. Beachten Sie, dass die Verwendung eines Sicherheitskennworts Auswirkungen darauf haben kann, ob ein anderer Desktop verwendet wird (dies ist abhängig von der Windows-Version und ich kann mich nicht erinnern, wie die verschiedenen Versionen funktionieren).
Auch dieser Code wird im Debug-Modus unter Visual Studio nicht ordnungsgemäß funktionieren, weil Sie VS Fensterhandle erhalten.
Anders als das alles peachy :-)
geändert hat, das ist falsch: „GetFocus das Fenster mit dem Tastaturfokus für die aktuelle zurück Thread-Nachrichtenwarteschlange. [...] Verwenden Sie die GetForegroundWindow-Funktion, um das Handle in dem Fenster abzurufen, mit dem der Benutzer gerade arbeitet. " –
Wie gesagt: "wenn Sie das Fenster meinen, das den Eingabefokus hat". – Stefan
Ja, ich meine das Fenster, in dem der Benutzer arbeitet. Danke –