![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить handle фокусного объекта [D7, XP]
SamProf © (2006-08-12 16:44:00)Я знаю:
GetForegraudWindow - возвращает handle активного окна в винде
GetActiveWindow - возврашяет активное окно моего приложения
GetFocus - - хандл фокусного компонента на моей форме
А нужно получить хандле обьекта, активной в данной формы в системе!
Ketmar (2006-08-12 20:35:00) [1]> [2] SamProf © (12.08.06 16:57)
keybd_event() не лечит разве в этом случае?
Джо (2006-08-12 19:59:00) [2]> [6] begin...end © (12.08.06 19:45)
> Странно, но вчера этот вопрос уже поднимался...
> http://www.delphimaster.ru/cgi-bin/forum.pl?id=1155297332&n=5
Этот вопрос поднимался даже недели 3 назад:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1153935200&n=18
(посты [84] и [88]).
И, вероятно, еще не раз будет "подниматься" :)
begin...end (2006-08-12 19:45:00) [3]Странно, но вчера этот вопрос уже поднимался...
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1155297332&n=5
Джо (2006-08-12 17:02:00) [4]> [3] Джо © (12.08.06 16:58)
Сорри, форматирование уползло :(
> [4] Zeqfreed © (12.08.06 17:00)
> Мне больше по душе AttachThreadInput + GetFocus :)
Дело вкуса :0)
Zeqfreed (2006-08-12 17:00:00) [5]Мне больше по душе AttachThreadInput + GetFocus :)
Джо (2006-08-12 16:58:00) [6]Можно вот так:
var
ThreadId: THandle;
GuiThreadInfo: tagGUITHREADINFO;
Txt: array [0..1024] of Char;
begin
ThreadId := GetWindowThreadProcessId ( Handle_Окна );
if ThreadId = 0 then
RaiseLastOSError;
GuiThreadInfo.cbSize := SizeOf(tagGUITHREADINFO);
if not GetGUIThreadInfo (ThreadId,GuiThreadInfo) then
RaiseLastOSError;
// в GuiThreadInfo.hwndFocus хранится хэндл нужного окна (если есть).
end;
SamProf (2006-08-12 16:57:00) [7]Вообще проблема такая - мне нада отправить месагу о нажатии клавиши активному объекту - я так понимаю нада найти хандл + SendMessage?
Zeqfreed (2006-08-12 16:54:00) [8]> [0] SamProf © (12.08.06 16:44)
AttachThreadInput + GetFocus.