|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.12.2008, 23:30 | #1 |
Ra-Ra ?
Форумчанин
Регистрация: 06.03.2008
Сообщений: 286
|
Глобальный хук. Проблема с dll =\\
Здрасте, наверное тема поднималась но что-то на я не нашёл.
Есть длл, правильно написана не знаю но выглядит она так: Код:
procedure GetMsg(MyMsg : TMsg); Хотя незнаю, главное не это. В моей длл описаны процедуры установки хука и снятия. И вроде бы экспорт по образцу из других примеров которые видел сделал. А вот как в своей программе их вызывать? Эти процедуры? Подскажите 8) |
17.12.2008, 10:54 | #2 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
CallNextHookEx надо вызывать в конце.
и надо так: Result:=CallNextHookEx(HookH, Code, wParam, lParam); про импорт из DLL http://www.google.ru/search?hl=ru&lr...Delphi&spell=1 Последний раз редактировалось rpy3uH; 17.12.2008 в 10:58. |
17.12.2008, 18:12 | #3 |
Ra-Ra ?
Форумчанин
Регистрация: 06.03.2008
Сообщений: 286
|
Хмм как-то странно, получается. Вроде длл поправил и вроде 15 минут назад сработала. Правда я забыл цикл обозначить, потому рекурсия получилась, но зато на нажитие мышки сработало. Сейчас оставил все также только вместо действий бибикалку поставил. Сообщения что хук установился выводит, а вот не бибикает =\\
Код:
Код:
|
17.12.2008, 20:52 | #4 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Ну как обычно. Все спешат времени ни на что нет ну а если присмотреться... думаю разницу уж сами увидите
Код:
Код:
|
17.12.2008, 21:14 | #5 |
Ra-Ra ?
Форумчанин
Регистрация: 06.03.2008
Сообщений: 286
|
Ну я вычитал, что когда импортируются функции статически необязательно писать расширение dll или exe, дельфи сама проверяет эти библиотеки в каталоге программы либо гдето в каталоге виндовс. А вот если нужные функции находятся в других расширениях или в других местах то надо уже подключать динамически. GetMouseClick импортировал чтобы наверняка 8)Э
Кстати, табличка о установленной ловушке выскакивает. Возможно у меня неправильно обработка сообщения идёт =\\ |
17.12.2008, 22:52 | #6 | |
Ra-Ra ?
Форумчанин
Регистрация: 06.03.2008
Сообщений: 286
|
Методом научного тыка обнаружил вот что:
if lParam = MK_LBUTTON then - не выполняется, тоесть если условие убрать, пищит постоянно если двигать мышкой, и с интервалом почти в секунду если не "дышать" 8) Пробовал еще сделать так, тоже без результатно. =================================== =================================== =================================== Хм заработало но как-то странно =\\ Код:
=================================== =================================== ================================== Цитата:
Последний раз редактировалось Zeraim; 17.12.2008 в 23:22. |
|
18.12.2008, 09:04 | #7 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
procedure GetMouseClick(Code, wParam, lParam: integer) stdcall;
так нельзя!!!! можно только так: function GetMouseClick(Code, wParam, lParam : integer): LResult; stdcall; так пробовал? Код:
|
18.12.2008, 13:17 | #8 | |
Ra-Ra ?
Форумчанин
Регистрация: 06.03.2008
Сообщений: 286
|
Цитата:
Да пробовал, так работает, в полно экранных приложениях. В винде работает криво, только после нажатия правой кнопки а потом левой срабатывает. Возможно надо обрабатывать при WM_LBUTTONUP. =================================== =================================== ================================= Да все верно, при WM_LBUTTONUP всё работает корректно, вот код: Код:
Последний раз редактировалось Zeraim; 18.12.2008 в 13:20. |
|
18.12.2008, 14:01 | #9 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Цитата:
|
|
18.12.2008, 14:10 | #10 |
Ra-Ra ?
Форумчанин
Регистрация: 06.03.2008
Сообщений: 286
|
Я в английском даже со словарём в терминах не силён, потому какие то сложные фразы в мсдн остаются для меня загадкой. А так если виндоус сам использует результат функций в хуках на своё усмотрениe, то тогда все понятно 8)
Последний раз редактировалось Zeraim; 18.12.2008 в 14:34. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хук HttpSendRequestA через Wininet.dll | VitaliyK | Общие вопросы .NET | 0 | 08.12.2008 14:28 |
Проблема с dll( | DM_bite | Помощь студентам | 10 | 31.07.2008 16:05 |
И ещё проблема с DLL | Altera | Общие вопросы Delphi | 7 | 25.06.2008 23:45 |
Глобальный хук на мышь не глобальный О_о | JTG | Общие вопросы Delphi | 3 | 05.06.2008 17:41 |
глобальный хук & событие отжатия клавиши | Nowichok | Общие вопросы Delphi | 9 | 24.11.2006 17:51 |