Cum să obțineți mânerul ferestrei care are focalizarea intrare
Cum să obțineți mânerul ferestrei care are focalizarea?
GetFocus - doar procesul meu. (
GetForegroundWindow - returnează fereastra principală.
Dacă acest câmp de intrare casetă în care cursorul este - cum să-l ocupe?
Am nevoie de ceva de genul GetFocus, ci pentru întregul sistem.
Probabil că nu sunt întrebat foarte clar.
Am nevoie pentru a obține hWnd a ferestrei care are focalizarea tastaturii.
GetWindowFromPoint - cum mă poate ajuta?
încerca
AttachThreadInput, apoi GetFocus
Funcția GetFocusedWindow: HWND;
var
CurrThID, ThID: DWORD;
începe
Rezultatul: = GetForegroundWindow;
dacă rezultatul <> 0 atunci
începe
CurrThID: = GetCurrentThreadId;
ThID: = GetWindowThreadProcessId (rezultat, // mâner la fereastra
zero // identificator de proces
);
Rezultatul: = 0;
în cazul în care AttachThreadInput (CurrThID, ThID, Adevărat) atunci
începe
Rezultatul: = GetFocus;
AttachThreadInput (CurrThID, ThID, fals);
se încheie;
se încheie;
se încheie;
Vă mulțumesc foarte mult, troits, am făcut deja asta.
În general, atunci, din moment ce există o 98 F-I: GetGUIThreadInfo
Cu ei este mai ușor.
Cu toate acestea, în timp ce aceasta nu funcționează :))))
Hadley sau la stânga, sau chiar 0 / nule. Sap.
Konkektno pianul, mă întorc întotdeauna 0. (((
Windows XP, delphi 5
> Deus
Ei bine, așa că întotdeauna;)
Sunt de acord, nu iau în considerare cazul în care fereastra activă în asteptare fir-e (Atunci AttachThreadInput returnează false)
Aici este versiunea corectată. Am totul de lucru (Win2k Delphi 5.0)
Funcția GetFocusedWindow: HWND;
var
CurrThID, ThID: DWORD;
începe
Rezultatul: = GetForegroundWindow;
dacă rezultatul <> 0 atunci
începe
CurrThID: = GetCurrentThreadId;
ThID: = GetWindowThreadProcessId (rezultat, // mâner la fereastra
zero // identificator de proces
);
Rezultatul: = 0;
dacă CurrThID = ThId atunci
Rezultatul: = GetFocus
altfel
începe
în cazul în care AttachThreadInput (CurrThID, ThID, Adevărat) atunci
începe
Rezultatul: = GetFocus;
AttachThreadInput (CurrThID, ThID, fals);
se încheie;
se încheie;
se încheie;
se încheie;
Da, exact, funcționează!
Vă mulțumesc foarte mult!
Memorie: 0.72 MB
Timpul: 0.027 c