![]() |
|
|
![]()
|
|
| ReFleX |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 26.9.2004 Где: Таллинн Репутация: нет Всего: 3 |
Я хочу сделать, чтобы при нажатии определённой клавиши программа скрывалась, а также, при нажатии другой клавиши программа открывалась, естественно клавиша будет нажиматся вне программы.
Надо сделать небольшую шпору Спасибо! |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
Тут сорри, правильного ответа дать не смогу.. Один из вариантов - следующий: OnIdle у формы. Событие выполняется в момент простоя (не работы) приложения. Т.е. для отлавливания CapsLock или NumLock можно спокойно использовать. |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Через АПИ Функции
Принцип простой, нужна глобальная функция Пишешь DLL-ку Там функцию для переxвата нажатой клавиши. Из своей проги вызываешь SetWindowsHookEx idHook => WH_KEYBOARD lpfn => Адрес твоей функции в DLL dwThreadId => если дашь 0 то клавиши будут отлавливаться для всеx потоков, если дашь конкретный поток то для него. А дальше через MSDN, если не получиться пиши, пришлю работающий пример... CALLBACK функция в DLL должна иметь следующий прототип
Это сообщение отредактировал(а) azesmcar - 15.11.2004, 17:19 |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 4 Всего: 162 |
Люди, вы чего, зачем так сложно?
В программе пишешь примерно такой код:
<Код кнопки> от 0 до 255. |
|||
|
||||
| ReFleX |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 26.9.2004 Где: Таллинн Репутация: нет Всего: 3 |
JackYF
А если кнопка будет нажата вне программы будет работать? |
|||
|
||||
| ReFleX |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 26.9.2004 Где: Таллинн Репутация: нет Всего: 3 |
Выдаёт ошибку в первой строчке: [C++ Error] Unit1.cpp(20): E2451 Undefined symbol 'H78' Я не тот код кнопки написал? |
|||
|
||||
| ReFleX |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 26.9.2004 Где: Таллинн Репутация: нет Всего: 3 |
http://cppbuilder.hotbox.ru/kod.html Для следующих |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 4 Всего: 162 |
Оно должно работать вне программы! У меня работало
Код кнопки не тот, или что? |
|||
|
||||
| ReFleX |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 26.9.2004 Где: Таллинн Репутация: нет Всего: 3 |
Всё спасибо, я разобрался
Всё пашет! |
|||
|
||||
| ano360 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 22.5.2006 Где: Москва Репутация: нет Всего: нет |
ReFleX-А где ты этот код вписал?
В каком событии? разобрался сам-помоги товарисчу -------------------- Жизнь есть. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 11 Всего: 146 |
или отдельный поток юзать -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| ano360 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 22.5.2006 Где: Москва Репутация: нет Всего: нет |
borland с++ builder 6 - нет у формы события.
Добавлено @ 21:57 мож OnHide? -------------------- Жизнь есть. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 11 Всего: 146 |
небольшая неточность у Mal Hack, но никто не отменял кнопку F1!!!!!
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| ano360 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 22.5.2006 Где: Москва Репутация: нет Всего: нет |
я использовал ApplicationEvents
да, всё это здорого, но OnIdle срабатывает у меня только после того, как я навиду курсон на форму т.е. код выполняется только после этого. Наприменр, если я введу void __fastcall TForm1::ApplicationEvents1Idle(TObject *Sender, bool &Done) { bool but = GetAsyncKeyState(VK_CONTROL); if (but){ Button1->Caption="ctrl"; } и нажму ctrl, название поменяется только тогда, когда я наведу курсор на форму Можно сделать, чтоб менялась мгновенно? -------------------- Жизнь есть. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 11 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
![]()
|
| Правила форума "С++ 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. |