Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо