Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.03.14;
Скачать: CL | DM;

Вниз

Активация без захвата фокуса клавиатуры   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2010.03.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
2-1263309374
Евгений Р.
2010-01-12 18:16
2010.03.14
Работа с tAdoQuery


15-1261691227
Юрий Зотов
2009-12-25 00:47
2010.03.14
Ура!!! Я написал троян, не нажав ни одной клавиши!!!


4-1229881658
Пётр
2008-12-21 20:47
2010.03.14
ID процесса по имени exe-шника


2-1263041766
TRSteep
2010-01-09 15:56
2010.03.14
Динамические массивы в функциях


15-1261854736
Германн
2009-12-26 22:12
2010.03.14
Странно сегодня глючил мой провайдер.