![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Hook s [D7, WinXP]
Microsoft Leks © (2002-12-05 15:48:00)Здраствуйте Уважаемые Мастера! У мня возник вопрос по использованию Keyboard Hook! Приведите пожалуста полный пример
hook.dll ( Та dll"ка которую я скачал отсюда - при нажатии клавиши в Memo появляется 2 символа...)..и можно ли чтобы русские буквы тож отображались!
MasTerra ( www.masterra.ru )
E-Mail (LeksKinder@nadey.com)
delpher_gray (2002-12-12 17:26:00) [1]function KeybProc(code : integer; wParam : word; lParam : longint) : longint; stdcall;
var
AppWnd: HWND; // Дескриптор приложения, в котором произошло нажатие клавиши
begin
if (code = HC_ACTION) and (lParam <> lParam or $8000 shl 16) and (lParam <> lParam or $8000 shl 15) then // Незнаю как, но это работает :-))
begin
AppWnd := GetForegroundWindow();
SendMessage(GlobalData^.MyAppWnd, WM_MYKEYHOOK, wParam, AppWnd);
end;
Result := CallNextHookEx(GlobalData^.SysHook, Code, wParam, lParam);
end;
Romkin (2002-12-10 15:48:00) [2]
function KeybdProc(code: Integer; VirtualKey: wParam; Flags: LPARAM): LRESULT;
stdcall;
var
chars: array [0 .. 1] of char;
ascRes: Integer;
if (Flags and $80000000) > 0 then //Только нажатие
begin
//GetKeyboardState(KeybState);
chars := #0#0;
ascRes := ToAscii(VirtualKey, Flags, KeybState, @chars, 0); //по текущей раскладке
KeybString := KeybString + chars;
end;
и так далее...
delpher_gray (2002-12-10 15:30:00) [3]2 Microsoft Leks
А зачем в хуке нужно использовать GlobalData ?? Я так и непонял... Статья уж сильно трудная для новичка :-))
Microsoft Leks (2002-12-09 15:12:00) [4]Сам хук я понял как делать как подключать и т.д а вот с колличеством букв не врубился....может Дадите мне кусок кода :(?
Song (2002-12-09 14:43:00) [5]Того что есть в примерах и статьях достаточночтобы написать почти любой хук даже для начинающего. Просто не надо лениться, а сесть и разобраться, пускай это займёт даже продолжительное время. На будущее зато польза. Все когда так делали, я ни у кого помощи не просил и разобрался сам, со скрипом вроде (не помню уже). Все смогли а Вы не можете?
Microsoft Leks (2002-12-09 14:41:00) [6]Мне надо!:(
Song (2002-12-09 14:22:00) [7]Нет, мне это не надо.
Microsoft Leks (2002-12-09 14:20:00) [8]Рабочий вариант ( FULL VERSION ) хука есть?
Song (2002-12-09 13:58:00) [9]по два символа потому что срабатывает на WM_KEYUP и на WM_KEYDOWN. Чтобы русские выводились надо ещё определять текущую раскладку и конвертировать в зависимости от результата.
Microsoft Leks (2002-12-09 13:49:00) [10]Насчет хуков!
http://www.delphikingdom.com/mastering/hook.htm
Скачал готовый хук...запустил....
всё равно он записывает в MEMO по 2 символа :(!
Можно ли чтобы Memo1 выводил русские буквы?
Identifikator Borna (2002-12-05 17:52:00) [11]Попробуй так что ли:
xxx:= Ini.ReadString("Proga","Caption",""My Computer");
hwndHandle:=FindWindow(nil,"xxx");
if(hwndHandle <> 0) then ...
только при чем тут хуки?
Microsoft Leks (2002-12-05 17:28:00) [12]Как?:(
Identifikator Borna (2002-12-05 17:12:00) [13]Можно
Microsoft Leks (2002-12-05 16:39:00) [14]Тогда такой вопрос!
Вот маленький кусочек программы
hwndHandle:=FindWindow(nil, "My Computer");
if(hwndHandle <> 0) then ...
Итак вопрос! Можно ли загрузить ВЫДЕЛЕННЫЙ текст из ini файла
например!
FreeLancer (2002-12-05 16:15:00) [15]http://www.delphikingdom.com/mastering/hook.htm
Microsoft Leks (2002-12-05 16:12:00) [16]А скачать полностью hook"у можно????! тока нормальную =)
Song (2002-12-05 15:58:00) [17]WH_GETMESSAGE+WM_CHAR