Probleme mit GetFocus
-
Ich habe ein kleines Problem beim ermitteln des Fenstername vom aktuellen Fenster das den Fokus hat:
#include <stdio.h> #include <windows.h> void test() { HWND focus; char buffer[100]; int zeichern; focus = GetFocus(); printf ("%d\n",focus); zeichern = GetWindowTextLength (focus); printf ("%d\n",zeichern); GetWindowText(focus, buffer, zeichern); printf ("%s\n",buffer); } int main() { sleep (5000); test(); system ("PAUSE"); return 0; }Nur leider erhalte ich bei den ausgaben immer 0?
Wieso ist das so?
Was ist daran bitte verkehrt?
-
Ist echt verdammt wichtig.
Und es weiß wirklich niemand weiter?
-
<a href= schrieb:
http://msdn2.microsoft.com/en-us/library/ms646294(VS.85).aspx">GetFocus returns the window with the keyboard focus for the current thread's message queue. If GetFocus returns NULL, another thread's queue may be attached to a window that has the keyboard focus.
... Ist das Fenster im selben Thread wie dein Code?
-
Nein.
Ich habe mir das ganze jetzt so Vorgestellt.
Alle Fenster werden aufgelistet und wenn ein Fesnter den Fokus hat dann soll das Ausgegeben werden.
-
Dann müsstest Du die aktive Applikation, das aktive Fenster ermitteln, dann AttachThreadInput auf diesen Thread ausführen, GetFocus machen, AttachThreadInput nicht vergessen für den detach...
Jeder Thread hat eben seine eigene Buchhaltung für den Fokus.
-
Das kann ja was werden....
^^
Ich denke das hier ist die richtige Funktion:
http://msdn2.microsoft.com/en-us/library/ms681956(VS.85).aspx
-
Könnte man das ganze nicht etwas einfacher machen?
Beispielweise das man überprüft welches Fenster im Vordergrund ist?
-
Meinst du sowas?
http://msdn2.microsoft.com/en-us/library/ms633505.aspx
-
Jop genau das habe ich gesucht.
Danke.
