Главная страница
    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.03 c
8-1068846700
BlaMyr
2003-11-15 00:51
2004.04.25
Миниатюры графических файлов.


7-1078327433
IceBeerg
2004-03-03 18:23
2004.04.25
HELP!!! Обои на рабочий стол.


7-1077905795
DuhcmanSoft
2004-02-27 21:16
2004.04.25
Как узнать полный путь к исполняемому файлу процесса?


11-1056115592
Gandalf
2003-06-20 17:26
2004.04.25
AutoWars результаты турнира


3-1080425015
_toltec
2004-03-28 01:03
2004.04.25
хранимая процедура





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский