Поиск:

Ответ в темуСоздание новой темы Создание опроса
> KeyboardHook убывает процессы в которых нажимаются, KeyboardHook убывает процессы в которых  
V
    Опции темы
Platov
Дата 22.12.2011, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 23.7.2009

Репутация: 2
Всего: 2



Здравствуйте, помогите разобраться и найти ошибку.
Хук ставится. Данные в программу передаются.
Но при закрытии падают программы в которых нажимали кнопки.

Эксперименты показали что убивает именно функция 
Код

extern "C" __declspec(dllexport) LRESULT CALLBACK KeyboardHook(int nCode,WPARAM wParam,LPARAM lParam)

в dll, причём даже если она пустая.
Всю голову уже сломал. Подозреваю что что-то не так делаю...

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  dll.rar 763,72 Kb
PM MAIL   Вверх
Dem_max
Дата 22.12.2011, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



Цитата

Before terminating, an application must call the UnhookWindowsHookEx function to free system resources associated with the hook.



--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Platov
Дата 22.12.2011, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 23.7.2009

Репутация: 2
Всего: 2



Цитата(Dem_max @  22.12.2011,  13:42 Найти цитируемый пост)
Before terminating, an application must call the UnhookWindowsHookEx function to free system resources associated with the hook.


а это в коде не оно?
Код

//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
 UnhookWindowsHookEx(hKeybHook);
 FreeLibrary(hLib);

}
//---------------------------------------------------------------------------

PM MAIL   Вверх
Dik0n
Дата 22.12.2011, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 11.5.2011

Репутация: 1
Всего: 10



Помоему нехватает соглашения stdcall
--------------------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ◄◄◄ Сотри монеткой защитный слой
PM MAIL WWW   Вверх
Platov
Дата 22.12.2011, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 23.7.2009

Репутация: 2
Всего: 2



Цитата(Dik0n @  22.12.2011,  16:59 Найти цитируемый пост)
Помоему нехватает соглашения stdcall


Поподробнее если можно.

PM MAIL   Вверх
Dem_max
Дата 23.12.2011, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



посмотри пример как надо делать 

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  Hook.zip 15,32 Kb


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Platov
Дата 23.12.2011, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 23.7.2009

Репутация: 2
Всего: 2



Dem_max, спасибо, но я там ничего не понял. Там даже на асме что-то есть. 
Интуиция мне подсказывает что это делается как-то проще. 
Мой ведь вариант работает, но глючноват.
PM MAIL   Вверх
Dem_max
Дата 23.12.2011, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



Ну во первых  не видно как ты ставишь хук.
А во вторых у тебя скорее всего динамическая RuntimeLibrary(RTL) и адская смесь(по крайней мере для меня) WinAPI и VCL в виде этого AnsiString s. 


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Platov
Дата 23.12.2011, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 23.7.2009

Репутация: 2
Всего: 2



Да, оно самое. Наверное в этой "адской смеси" и проблема.

Так и есть. Сделал простую длл без vcl переписал все AnsiString на char[] и стало работать без сбоев.

Это сообщение отредактировал(а) Platov - 23.12.2011, 22:47
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0559 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.