![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Gonzo |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 8.5.2007 Репутация: нет Всего: нет |
Пишется программа для для дисплейного модуля на электровоз и встала следующая проблемма.
Необходимо перехватывать нажатия определенных клавишьи писать их в лог-файл вместе с текущей координатой, для создания базы препятствий. Создал ловушку, а вот как передать в нее переменную для записи в файл никак не пойму... Инициализация ловушки
Сама ловушка
BUF_KLUBDI[4] переменная типа integer из вызывающей программы. |
||||
|
|||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 15 Всего: 72 |
Почему для этого не воспользоваться WH_KEYBOARD_LL, который можно не выносить в dll, и который, соответственно, вызывается в контексте "своего" процесса, а значит - не нужно думать "как передать это и это", один раз передали - и "это" при вызове хука "никуда не денется"? Добавлено через 1 минуту и 22 секунды я так понимаю, что нужно передать хендл открытого файла, чтобы не открывать/закрывать его каждый раз при вызове хука, так? |
|||
|
||||
| Gonzo |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 8.5.2007 Репутация: нет Всего: нет |
не совсем понимаю, зачем это нужно делать? Вроде вот так работает...
|
||||
|
|||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 15 Всего: 72 |
||||
|
||||
| Gonzo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 8.5.2007 Репутация: нет Всего: нет |
||||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 15 Всего: 72 |
А чего подробнее? Ты спросил, как передать переменную в хук для записи в файл. В моем понимании переменная для записи в файл - это хендл файла, или указатель на типизированный файл, как у тебя в коде. Я иногда так делаю, чтобы не заниматься на каждый чих открытием/закрытием файла. И тут выясняется, что передать-то нужно было не это. А вот что? Единственное, что вижу - это наконец-то появился в коде CallNextHookEx. Пытаясь опять включить телепатор, предполагаю, что передать нужно было не "файловую переменную", а HHook. Но это слабое объяснение - на Win2000 и выше в CallNextHookEx можно вместо него передавать 0, система это поймет. В общем - телепатор отказал напрочь. Добавлено через 9 минут и 22 секунды В общем, ладно, забыли. "Работает - ничего не трогай!" (с) чье-то |
|||
|
||||
| Gonzo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 8.5.2007 Репутация: нет Всего: нет |
||||
|
||||
| artemxxl |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 19.5.2010 Репутация: нет Всего: нет |
создаешь в dll стартовую функцию с параметрами (которые тебе надо туда передать) и в ней стартуешь все хуки.
Из твоего приложения вызываешь эту функцию и передаешь нужные параметры. |
|||
|
||||
| XperT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 19.8.2006 Репутация: 1 Всего: 4 |
Как вариант, для обмена данными, есть еще мапед файлы
|
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |