![]() |
|
|
![]()
|
|
| Ockonal |
|
|||
![]() Smile ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 9.7.2007 Где: Ukraine::Nikolaev ; Репутация: нет Всего: 3 |
Вообщем нуна помощь. Как мне получить доступ к TrayIcon в хуке(тот в длл).
Тоесть хук клавы. Он находится в длл"ке. Как мне, например, через него сменить иконку. Тоесть например: TrayIcon1->SetIconIndex(2); При "стройке", как и следовало ожидать,ожидать ошибка. TrayIcon1 - не объявлен. Как же тогда обратится к этому объекту(Если это возможно) --------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке. |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
Нужна синхронизация твоего приложения с dll'кой. Например, через сообщения, которые будут посылаться в окно твоего приложения функцией SendMessage из dll.
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
CALLBACK-ов на вас не хватает ) сдались вам сообщения 8)...
примерно около того... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
jonie, я что-то не помимаю. DLL в другом процессе. какой CALLBACK?
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
упс 8) сори, затупил. бывает.
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Ockonal |
|
|||
![]() Smile ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 9.7.2007 Где: Ukraine::Nikolaev ; Репутация: нет Всего: 3 |
Вот попробывал с SendMessage:
в хуке dll //===================================================================== char B[KL_NAMELENGTH]; AnsiString transl2; //------------------------ GetKeyboardLayoutName(B); transl2 = StrPas(B); if(B == "0x409") { SetIndex = 0; }; if(B == "0x419") { SetIndex = 1; }; if(B == "0x422") { SetIndex = 2; }; //------------------------ SendMessage(hWnd2,WM_INPUTLANGCHANGEREQUEST,SetIndex,0); //===================================================================== в форме: Создаю ApplicationEvents: //--------------------------------------------------------------------------- void __fastcall TLangMasterForm1::ApplicationEvents1Message(tagMSG &Msg, bool &Handled) { if(Msg.message==WM_INPUTLANGCHANGEREQUEST) { switch(Msg.wParam) { case 0: TrayIcon1->SetIconIndex(0); break; //En case 1: TrayIcon1->SetIconIndex(1); break; //Ru case 2: TrayIcon1->SetIconIndex(2); break; //Uk default: TrayIcon1->SetIconIndex(0); break;//??? } Почему не работает? Один раз меняется значек, и то, когда про активна } } //--------------------------------------------------------------------------- --------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке. |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
||||
|
||||
| Ockonal |
|
|||
![]() Smile ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 9.7.2007 Где: Ukraine::Nikolaev ; Репутация: нет Всего: 3 |
Понял, всем, кто ответил СПАСИБО. Тема закрыта
--------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке. |
|||
|
||||
| Ockonal |
|
|||
![]() Smile ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 9.7.2007 Где: Ukraine::Nikolaev ; Репутация: нет Всего: 3 |
Нет...Не закрыта. Сразу кажется получалось... Но ничего. ВОт код:
DLL //=================================================================== //------------------------ GetKeyboardLayoutName(B); transl2 = StrPas(B); if(B == "0x409") { SetIndex = 0; }; if(B == "0x419") { SetIndex = 1; }; if(B == "0x422") { SetIndex = 2; }; //------------------------ SendMessage(Application->Handle,WM_USER+1,SetIndex,0); //================================================================= ФОРМА //--------------------------------------------------------------------------- void __fastcall TLangMasterForm1::ApplicationEvents1Message(tagMSG &Msg, bool &Handled) { if(Msg.message==WM_USER+1) { switch(Msg.wParam) { case 0: TrayIcon1->SetIconIndex(0); break; case 1: TrayIcon1->SetIconIndex(1); break; case 2: TrayIcon1->SetIconIndex(2); break; default: TrayIcon1->SetIconIndex(0); break; } } } //--------------------------------------------------------------------------- Ну а что опять???. --------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке. |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
с функцией PostMessage работает
|
|||
|
||||
| Ockonal |
|
|||
![]() Smile ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 9.7.2007 Где: Ukraine::Nikolaev ; Репутация: нет Всего: 3 |
Не ну я звиняюсь. Достал уже вас
Меняется, когда прога активна, и то с заскоками. --------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке. |
|||
|
||||
| Ockonal |
|
|||
![]() Smile ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 9.7.2007 Где: Ukraine::Nikolaev ; Репутация: нет Всего: 3 |
Может мне кинуть сюда проект?
--------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке. |
|||
|
||||
| 586 |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
тогда попробуй перехватить сообщение с помощью BEGIN_MESSAGE_MAP
cpp
h
|
||||
|
|||||
| Ockonal |
|
|||
![]() Smile ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 9.7.2007 Где: Ukraine::Nikolaev ; Репутация: нет Всего: 3 |
Всем спасибо
--------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |