|
2 / 2 / 2
Регистрация: 07.02.2009
Сообщений: 36
|
|
Ловушка мыши03.07.2009, 11:32. Показов 4811. Ответов 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 трапов Ловушка для блокнота Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store.
И так:
1. Скачиваем с. . .
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге).
Задача:
Программно добавить префикс в нумерацию документов.
Решение:
В модуле объекта. . .
|