|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.09.2013, 14:45 | #1 |
Пользователь
Регистрация: 02.10.2012
Сообщений: 16
|
DLL<->Exe
Народ такая ситуация
Есть прога и к ней прикручена DLL. Когда программа загружается, она динамически подгружает DLL и устанавливает хук на клаву. По нажатию определённой клавиши и срабатывании хука мне нужно чтобы сработала процедура и передала данные в программу ИЛИ при срабатывании хука DLL просто передала(не важно как он будет выглядеть, главное чтобы прога смогла его уволить) сигнал в главную программу и там процедура сработала. Не знаю как это реализовать( работать когда из программы вызывается процедура в DLL я научился, а вот наоборот нет( подскажите хотя бы в какую сторону копать, а то уже куча инфы перерыл и что-то нифига. |
20.09.2013, 14:55 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
Изучай это: http://ru.wikipedia.org/wiki/Callbac...E0%ED%E8%E5%29
Как один из способов генерации событий - в обработчик хука передаешь указатель на некую процедуру в своей проге, и хук вызывает ее при обработке.
I'm learning to live...
|
20.09.2013, 15:03 | #3 |
Пользователь
Регистрация: 02.10.2012
Сообщений: 16
|
Спасибо, буду изучать.
|
23.09.2013, 20:14 | #4 |
Пользователь
Регистрация: 02.10.2012
Сообщений: 16
|
Чета пошарил по интернету, но так и не получилось вызвать из DLL в EXE процедуру. Подскажите, может есть какие примеры?
|
23.09.2013, 22:40 | #5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
Есть вот такое у меня:
Описание типа каллбэка: Код:
Код:
Код:
h:=hook(@callbackMe); - Сюда передается указатель на каллбэк-процедуру if Assigned(cb) then cb(nCode,wPara,lPara); - это вызов каллбэка.
I'm learning to live...
|
24.09.2013, 02:00 | #6 |
Пользователь
Регистрация: 02.10.2012
Сообщений: 16
|
Вообщем что-то он у меня её не вызывает((
Код DLL Код:
Код:
Код:
|
24.09.2013, 09:08 | #7 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,755
|
Есть подозрение, что клавиша PrintScreen неудачная, она ведь обрабатывается системой.
|
24.09.2013, 09:19 | #8 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
1)что за двойной вызов одной и той же процедуры то с параметрами то без?(причем один со статической загрузкой, второй с динамической)
2)при хуках длл грузится в другие приложения, и из них колбэк уже не работает, причем на практике даже переменная колбэка пустует. для межпроцессного взаимодействия нужен иной метод. Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
24.09.2013, 10:57 | #9 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,755
|
|
27.09.2013, 01:19 | #10 |
Пользователь
Регистрация: 02.10.2012
Сообщений: 16
|
Народ но это нифига не весело, какие ещё могут быть варианты, как можно реализовать?
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передать че-нибудь в DLL / Из DLL прочитать переменную EXE | WhiskasTM | Общие вопросы Delphi | 9 | 02.08.2012 13:33 |
Гибрид 16 (DLL) и 32 (EXE) | Alex Cones | Общие вопросы Delphi | 2 | 21.02.2010 09:23 |
Запуск Load.dll (бывшая Load.exe) в дереве проц-ов, Как запустить прогой на C# .dll-ку | kapustin | Общие вопросы .NET | 10 | 23.09.2009 22:20 |
Соединение DLL и EXE | Alex Cones | Общие вопросы Delphi | 2 | 19.04.2009 16:20 |