|
2 / 2 / 2
Регистрация: 07.02.2009
Сообщений: 36
|
|
Ловушка мыши03.07.2009, 11:32. Показов 4808. Ответов 27
Метки нет (Все метки)
Всем привет, собственно пытаюсь написать программу для "ловления" координат курсора, при щелчке на правую кнопку мыши. Все сделал, кроме самого главного - срабатывания программы по щелчку, точнее срабатывания войда.. создать своеобразную ловушку. Прочитав учебник я наткнулся лишь на большой код с которым не смог разобраться, так, что прошу помощи у специалистов!
![]() з.ы. пишу для общего развития
0
|
|
| 03.07.2009, 11:32 | |
|
Ответы с готовыми решениями:
27
Chart как показывать координаты мыши по графику возле курсора мыши! Вывести поточные координаты курсора мыши относительно формы и экрана, при нажатии на кнопку-реверсное изменение кнопок мыши C++ Ловушка delphi |
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 03.07.2009, 20:48 | |
|
Это связано с особенностью вызова фильтрующих функций операционной системой windows. Хотя, иногда можно и сделать эти функции прямо в exe (я делал хук для клавы), и даже будет работать (для некоторых сообщений windows майкрософт разрешает делать функции прямо в ехе, ввиду того, что они вызываются иначе), но тогда MS не дает тебе гарантии, что у тебя все будет работать правильно и не навернет систему при удобном случае.
0
|
|
|
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
|
||
| 03.07.2009, 22:20 | ||
|
0
|
||
|
|
|
| 04.07.2009, 00:14 | |
|
> Это связано с особенностью вызова фильтрующих функций операционной системой windows
А есть какой-нибудь линуксовый аналог подобного ограничения? Мне просто интересно стало, чем в этом отношении dll принципиально отличается от Exe с точки зрения ОС
0
|
|
|
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
| 04.07.2009, 00:49 | |
|
Судя по тому что написано в статье Using Hooks на MSDN, получается что библиотека, содержащая процедуру обработки (в случае глобального хука), загружается в адресное пространство каждого процесса и вызывается также для каждого из них (процессов). Отсюда и ограничение.
0
|
|
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 04.07.2009, 01:02 | |
|
А под линуксовые окна есть хуки? Разве это не будет зависить от менеджера окон, версии иксов?
Самое главное отличие в том, что при загрузке длл автоматически инициализируется своя область данных, shared-область, область для статических переменных. Таким образом у нас все настроено и ко всему мы можем обратиться. Потом контекст этой библиотеки будет копироваться в контекст каждого процесса и вызываться в нем. В ехе этого всего нет. Ты по сути, просто получаешь адрес на вход в функцию из ехе. Никаких областей инициализированных данных. Ты должен сам полностью писать, код чтобы найти адреса своих данных. Ну, и еще, хотя бы тем, что когда я буду грузить dll (loadlibrary) то вызовется dllmain, а к ехе "слово" грузить не применимо, хотя LoadLibrary на него тоже сработает. У приложения также есть такие вещи, как хэндлы открытых файлов/сокетов, стэк, чего у длл нет. Добавлено через 5 минут 35 секунд Evg, вообще мы уже отошли от изначальной темы.
0
|
|
|
|
||||
| 04.07.2009, 12:30 | ||||
|
С точки зрения юнисов, код, загруженный из (условно) a.out и *.so ничем не отличается - для ОС это просто отмапированные файлы, часть которых (*.exe) мапируется как private, а остальное (*.so) - как shared, а загрузкой *.so занимается не ОС а внешний динамический загрузчик (ld.so), который для ОС является самым обыкновенным процессом. Если юниксы разрабатываются из принципа "мухи отдельно, котлеты отдельно", то винда изначально разрабатывалась по принципу "миллион в одном". Загрузкой *.dll занимается непосредственно ОС. При этом ОС "лезет" вовнутрь *.dll, по каким-то признакам понимает, что модуль содержит какие-то глобальные хуки (или как там они правильно называются) и по этому критерию подмапирует этот разделяемый (shared) код к каждому процессу. Видимо с целью того, чтобы активный на текущий момент процесс что-то куда-то послал, после чего управление бы передалось на хук в тотм процесс, который инициировал загрузку этого .dll. В юниксе такой механизм не нужен из-за того, что изначально запускаются X'ы, которые собственно и занимаются обработкой всех нажатых кнопок, мышек и дальнейшей пересылкой нужным процессам Так чтоли получается? детали не столь важны, просто принцип примерно такой?
0
|
||||
|
42 / 42 / 4
Регистрация: 14.09.2008
Сообщений: 683
|
|
| 04.07.2009, 13:04 | |
|
Ставь ты глобальный хук и не парься. Что искать читай выше.
0
|
|
| 04.07.2009, 13:04 | |
|
SNMP ловушка Shutdown ловушка c# Метательная ловушка Ловушка SNMP трапов Ловушка для блокнота Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|