weboman
 Аватар для Schtrich
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6

Работа с глобальным хуком

24.07.2012, 13:12. Показов 10010. Ответов 26

Студворк — интернет-сервис помощи студентам
Сабж. Знаю, в инете полно, какой рабочий, т.е. каким вы пользовались и у вас получилось?

п.с. хук имеется в виду глобальный, тот который будет срабатывать даже если пользователь находится в другом приложении?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.07.2012, 13:12
Ответы с готовыми решениями:

Прoблемa с хуком
Всем привет! Делаю прогу повторяющую действия, хочу сделать на воспроизведении действий возможность остановки воспроизведения, у меня...

Маленькая заминка с хуком клавиатуры
хук предоставил внизу, работает, но срабатывает при нажатии любой клавиши (вообще любой) nCode всегда = 0, а как собственно узнать тогда...

Работа с хуком по захвату мыши
Здравствуйте! Имеется вот такой вот интересный хук мыши: https://www.cyberforum.ru/post1413269.html При нажатии и отжатии мыши...

26
weboman
 Аватар для Schtrich
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
26.07.2012, 16:31  [ТС]
Студворк — интернет-сервис помощи студентам
SSTREGG, спасибо , а можешь сказать почему картинка не выводится если я ее с диска читаю?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void KBDHook_KeyDown ( LLKHEventArgs e )
        {
            switch ( e.Keys )
            {
            case Keys.A:
                // pictureBox1.Visible = true; 
                test();
                break;
            case Keys.B:
                pictureBox1.Visible = false;
                break;
            }
        }
 
        void test()
        {
            
            Image img = Image.FromFile("test.bmp");
            pictureBox1.Image = img;
        }
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8729 / 3681 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
26.07.2012, 16:49
AlienNation, для начала следует изменить свойство Visible PictureBox'а, т.к. я его в дизайнере по умолчанию в False выставил. А потом следует изменить тактику: не грузить постоянно, одно и тоже изображение, при нажатии на клавишу, это плохо скажется на производительности. Загрузи заранее, потом выводи.
1
weboman
 Аватар для Schtrich
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
26.07.2012, 16:56  [ТС]
Спасибо, разобрался!
0
20 / 4 / 1
Регистрация: 17.11.2009
Сообщений: 142
05.05.2014, 19:15
Подниму тему.
Если на ту же кнопку повесить вызов MessageBox.Show(""), вся система начинает зависать на несколько секунд после появления диалогового окна. Только потом отвисает.
Как-то можно это исправить?
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8729 / 3681 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
05.05.2014, 21:45
Цитата Сообщение от m9yt Посмотреть сообщение
Как-то можно это исправить?
m9yt, не выводить модальные окна (вообще не выполнять дорогостоящих операций) в том потоке в котором происходит обработка хука.
В системе есть глобальный таймаут HKEY_CURRENT_USER\Control Panel\Desktop :: LowLevelHooksTimeout, по истечению которого Ваше приложение будет удалено из цепочки хуков (что и происходит).
0
20 / 4 / 1
Регистрация: 17.11.2009
Сообщений: 142
06.05.2014, 10:36
NickoTin, а по-другому никак? Просто я делаю в своем приложении горячие клавиши, и на некоторые из них обязательно повешены вызовы модельных окон.

Добавлено через 22 минуты
Хуки пришлось применить из-за того, что на форме имеется компонент DSOFramer, в котором открыт документ Word. В этом случае все комбинации клавиатуры перехватываются им. Может можно как-то организовать в данном случае перехват клавиш, не используя хуки?

Добавлено через 14 минут
Вот что нарыл на форуме насчет этого зависания:
Глобальный Хук на клавиатуру и MessageDlg
Но диалоговые окна мне точно нужны, это часть функционала системы.
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8729 / 3681 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
07.05.2014, 00:34
Цитата Сообщение от m9yt Посмотреть сообщение
Может можно как-то организовать в данном случае перехват клавиш, не используя хуки?
RegisterHotKey
Отловить нажатие сочетания клавиш глобально

Но если клавиша уже кем-то зарегистрирована, то зарегистрировать не получится.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.05.2014, 00:34

Обращение из потока к глобальным переменным
Здравствуйте. интересует такой момент есть код private void add() { Random rnd = new Random(); ...

Сделать глобальным generic класс
Добрый вечер! Возник такой вопрос. В программе использую дженерик класс Mapper<T>, в другом классе есть необходимость объявить его...

Проблема с хуком
Подскажите в чем проблема и как это можно решить? Создал хук на события мыши и некоторых клавиш, он их перехватывает но вместо одного...

Сделать указатель глобальным
есть указатель на структуру IL0 *pM; он объявлен в dog.h. Есть хидер cat.h в нем #include "dog.h" а в cat.cpp...

Проблема с глобальным массивом
Здравствуйте! Подскажите пожалуйста, как правильно обратится к глобальному массиву array. До этого прописал static , но программа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Опции темы

Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru