Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

Почему 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.045 c
14-1080750827
Оля
2004-03-31 20:33
2004.04.25
СРОЧНО!КРИПТОГРАФИЯ!


4-1077900302
PVR
2004-02-27 19:45
2004.04.25
Как получить список импортируемых модулей


1-1081332675
V-Isa
2004-04-07 14:11
2004.04.25
Как узнать ширину и высоту символа в пикселях для определенного .


3-1080389025
Новичек2
2004-03-27 15:03
2004.04.25
TDBAdvStringGrid и выравнивание по вертикали.


1-1081138205
_sulent
2004-04-05 08:10
2004.04.25
Tray...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский