Главная страница
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.033 c
1-1081332675
V-Isa
2004-04-07 14:11
2004.04.25
Как узнать ширину и высоту символа в пикселях для определенного .


9-1066403812
Gigabyte
2003-10-17 19:16
2004.04.25
Direct3D


14-1080821975
Layner
2004-04-01 16:19
2004.04.25
Помогите перевести ООО на др. человека...если есть кто из юристов


3-1080655692
DimonNew
2004-03-30 18:08
2004.04.25
Компонеты Rave и ADO.NET


7-1077161997
ma5ter
2004-02-19 06:39
2004.04.25
Хочу писать модули на ассемблере