Форум: "WinAPI";
Текущий архив: 2010.03.14;
Скачать: [xml.tar.bz2];
ВнизАктивация без захвата фокуса клавиатуры Найти похожие ветки
← →
Psycho © (2008-12-28 18:15) [0]Пытаюсь заставить окно не забирать у других фокус клавиатуры при активации. Когда окно показывается самостоятельно, без участия пользователя, фокус захватывается лишь в каком-то определённом случае (по-моему, при первом показе окна после сворачивания в трей), но хочется и от этого избавиться. Ну и под это дело можно бы сделать, чтобы даже при клике фокус не забирало. Пробую через хуки (проба пера в этом деле, так что наверно что-то не так делаю - что-то не получается). Как поправить следующий код, чтобы заработало?
OldWndProc, NewWndProc: Pointer;
procedure HookForm;
procedure UnhookForm;
procedure HookFormProc(var Msg: TMessage);
...
procedure TForm11.HookFormProc(var Msg: TMessage);
begin
if msg.Msg<>WM_SETFOCUS then
Msg.Result := CallWindowProc(OldWndProc, Form11.Handle,
Msg.Msg, Msg.wParam, Msg.lParam);
end;
procedure TForm11.HookForm;
begin
OldWndProc := Pointer(GetWindowLong(Form11.Handle, GWL_WNDPROC));
NewWndProc := Classes.MakeObjectInstance(HookFormProc);
SetWindowLong(Form11.Handle, GWL_WNDPROC, LongInt(NewWndProc));
end;
Delphi 2007, Windows Vista
← →
Psycho © (2008-12-31 12:41) [1]всё, решил весьма уникальным способом (в смысле только для этой программы)
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2010.03.14;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c