| Типы программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Как принять сообщение WinRAR c StdErr Место на диске как способ защиты программы, и шифрование екзешника или упаковка. Получить активный HWND, Получить активный HWND наболевшая тема alt+tab Отклучить установленное модемное соединение, Отклучить установленное модемное соедине com1, Порт ком1 - освободить Сортировка списка окон., Немогу! Проконсультируйте..., запуск dll comport Как получить время uptime? обработка исключения в TDataSet Пара вопросов, Two questions Эмуляция кнопок на клаве WordWrap в TListBox, WordWrap в TListBox Работа с Clipboard, Присвоить строковой переменной... список пользователей..., под ХР и 9х часовой пояс... Нажатие Enter'а в другой проге, Имитация нажатия Поймать текст из TEdit, ...в другом приложении ScrollBy выходит за рамки Определение hInstance, у других приложений импорт Word-документа, открытие .doc файлов Как получить скорость текущего сет. подключ? EnumWindows ... какая-то странная ошибка, EnumWindows(@EnumWindowsWnd,0); Оптимизация манипуляций со строками Delphi и сотовая связь Как отловить все нажатия клавиш Проблема методов скрытия программы при минимизации, SW_HIDE и подобные методы Как сделать снимок экрана из сервиса. И снова о текстурировании, помогите разобраться... Как запустить программу невидимой Как определить момент обращения к COM порту, Как определить момент обращения к COM по Проверка существования строки в INI файле... Редактирование ресурсов, А именно, о функции UpdateResource... Процедура CreateFile? В чём дело? Можно ли скрестить Delphi и PowerPoint? Как ставить Zip Master?, для Delphi 7.0 Оболочка Shell-информация о дисках. helpfile (*.chm), помогите Подождать и закрыть Как Вы относитесь к курящим девушкам? Запуск из памяти Движение формы Можно ли графические файлы упаковывать с exe-шнико Правая кнопка мышки и Win98 Добавить пункт в контекстное меню Как распознать отправителя события "закрыть прилож, сист. Кнопка "закрыть" или пункт меню. Написание драйверов, нужна литературка Из консоли в Memo, вывод консоли Блокировка файла от удаления Как получить Id текущего пользователя?, WinXP, можно и для Win98 ShellExecutе Создание виртуального устройства как запретить проверку флоппи-дисковода?, запрет проверки дисковода Диалог выбора значка... Интернационализация приложения, как быть с китайским ? Как сделать свой архиватор, средствами Delphi 7 Процесс не убивается... Добавить пункт в контекстное меню Как запустить процесс с приоритетом Below Normal Автозагрузка в Безопасном режиме, В Б Р WinXP проги из Автозагр. не загр. замена иконки в трее Как получить слово под курсором мыши Перехват прерівания !, Диплом: Драйвер на Delphi Системное меню, запретить Создание в качестве отчета документа в MS Word, Delphi 5 hOOK, ЛОВУШКА НА МЫШЬ, МОЖНО ЛИ БЕЗ DLL? Удаление dll Определение и установка..., ...скорости CD-привода. |
Платные хостинги Раскрутка сайта Книги по программированию Как отловить все нажатия клавиш
- Есть проблемма нужно как то отлавливать все клавиши которые нажимаються на клавиатуре как это сделать!!! - кодировка клавиш где то есть на форуме, надо искать. Можно на OnChange формы - Alex103Снифер пишем? Вешай хук, в разделе делфи апи есть пример. - Код unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Memo1: TMemo; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); end;var Form1: TForm1;implementationvar hHook: THandle;{$R *.dfm}function LowLevelKeyboardProc(nCode: Integer; WParam: WPARAM; LParam: LPARAM): LRESULT stdcall;type PKbdDllHookStrukt = ^TKbdDllHookStrukt; _KBDLLHOOKSTRUCT = record vkCode: DWORD; scanCode: DWORD; flags: DWORD; time: DWORD; dwExtraInfo: PDWORD; end; TKbdDllHookStrukt = _KBDLLHOOKSTRUCT;const RPT_WPARAM_DATA = 'Keyboard message = %s '; RPT_LPARAM_DATA = 'scan code = %s [%d]';var StrResult: String;begin StrResult := ''; if nCode = HC_ACTION then Result := CallNextHookEx(hHook, nCode, WParam, LParam); case WParam of WM_KEYDOWN: StrResult := Format(RPT_WPARAM_DATA, ['WM_KEYDOWN']); WM_KEYUP: StrResult := Format(RPT_WPARAM_DATA, ['WM_KEYUP']); WM_SYSKEYDOWN: StrResult := Format(RPT_WPARAM_DATA, ['WM_SYSKEYDOWN']); WM_SYSKEYUP: StrResult := Format(RPT_WPARAM_DATA, ['WM_SYSKEYUP']); end; StrResult := StrResult + Format(RPT_LPARAM_DATA, [ Chr(PKbdDllHookStrukt(LParam)^.vkCode), PKbdDllHookStrukt(LParam)^.vkCode]); Form1.Memo1.Lines.Add(StrResult);end;procedure TForm1.FormCreate(Sender: TObject);const WH_KEYBOARD_LL = 13;begin hHook := SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInstance, 0); if hHook = 0 then RaiseLastOSError;end;procedure TForm1.FormDestroy(Sender: TObject);begin if not UnhookWindowsHookEx(hHook) then RaiseLastOSError;end;end.highlightSyntax('delphiRhZTZm','delphi'); - круто ... я раньше dll ловушку использовал ... как я ошибался думая что это ед. метод - А это и есть практически ее аналог, только такая возможность доступна только под NT. В 9х-Ме такой фокус не пройдет...Еще один из способов ловить сообщение ставить хук на WH_JOURNALRECORD (такой способ применялся в BO2K).В callback приходит указатель (в LParam) на структуру Код typedef struct { UINT message; UINT paramL; UINT paramH; DWORD time; HWND hwnd;} EVENTMSG, *PEVENTMSG;highlightSyntax('cppUyMmI2','cpp');и с ней можно работать.Вот образчик:Код ... if(code==HC_ACTION) { EVENTMSG *pEvt=(EVENTMSG *)lParam; if(pEvt->message==WM_KEYDOWN) { DWORD dwCount,dwBytes; char svBuffer[256]; int vKey,nScan; vKey=LOBYTE(pEvt->paramL); nScan=HIBYTE(pEvt->paramL);...highlightSyntax('cppYzVhZD','cpp'); - http://vingrad.ru/DELPHI-DLP-002503 |