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

Вниз

Почему SetWindowsHookEx не пашет, если активно Dos-окно ?   Найти похожие ветки 

 
Phantomaz   (2004-02-25 19:35) [0]

использую следующий код (естессно в DLL):

function SysMsgProc(Code: Integer;
                   WParam: Longint;
                   var Msg: TMsg): Longint;
const
 PROCESS_TERMINATE = $0001;
var
 PrID : Cardinal;
begin
 case Msg.Message of
      WM_KEYDOWN: case msg.WParam of
                       VK_F1 : //
                       VK_F2 : //
                       ...
                       end;
      end;
 Result := CallNextHookEx(GetCurrentThreadId,
                          Code,
                          WParam,
                          Longint(@Msg));
end;

// Процедура запуска ловушки
procedure SysHook;
begin
 SysHook := SetWindowsHookEx(WH_GETMESSAGE,
                             @SysMsgProc,                                                      HInstance,
                             0);
end;

Так вот нажатие клавиш F1, F2 и др. не срабатывает, если в данный момент активно DOS-приложение или окно, например, Norton Commander. Что нужно сделать, чтобы заработало ?


 
Phantomaz   (2004-02-25 19:36) [1]

и ещё - можно сделать перехват нажатия клавиш без DLL ?


 
VMcL ©   (2004-02-25 20:18) [2]

>>Phantomaz  (25.02.04 19:36) [1]

Глобальный хук должен находиться в DLL - F1.


 
людь   (2004-02-26 07:18) [3]


> VMcL

Да и разве глаб. нуки будут работать на win16?


 
Digitman ©   (2004-02-26 08:08) [4]


> нажатие клавиш F1, F2 и др. не срабатывает


то приложение, которое в дан.момент имеет фокус ввода, и получает при помощи внедренного в него хука извещение о нажатии клавиши

глоб.хук м.б. установлен только в GUI-приложения, ни в DOS- ни в консольные приложения глоб.хук внедрен быть не может


 
VMcL ©   (2004-02-26 16:47) [5]

>>людь  (26.02.04 07:18) [3]
>[D6, Win95/98]

Win95/98 - это по-твоему win16?


 
Phantomaz   (2004-02-26 18:21) [6]

Да, действительно, Win98   :)

Ну так как сделать перехват нажатия клавиш ВЕЗДЕ -
и в GUI, и в DOS ????????


 
Digitman ©   (2004-02-26 18:22) [7]


> Phantomaz   (26.02.04 18:21) [6]



> как сделать


написать и использовать собственный драйверт режима ядра


 
Digitman ©   (2004-02-26 18:24) [8]

предвосхищаю очередной вопрос :

"ну и как написать и использовать собственный драйверт режима ядра ?"

)

и сразу контрвопрос - а на кой ляд вообще тебе этот надо ?
ты в состоянии описать конечную задачу ?


 
Phantomaz   (2004-02-27 19:00) [9]

Пишу прогу, которая должна уметь принудительно закрывать любое (!) активное окно



Страницы: 1 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.027 c
6-1077634195
Denis555
2004-02-24 17:49
2004.04.25
трабла с TNMHTTP


14-1080882768
Девушка
2004-04-02 09:12
2004.04.25
Выполнено, но с ошибками на странице


1-1081434681
hawkins
2004-04-08 18:31
2004.04.25
Помогите в разработке компонента


8-1068846700
BlaMyr
2003-11-15 00:51
2004.04.25
Миниатюры графических файлов.


14-1079985969
Andreykom
2004-03-22 23:06
2004.04.25
Memory