Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Mouse_click в любых (чужих) окнах Добавлено: 03.03.08 19:10  

Автор вопроса:  GDK
Нужно сделать чтобы при клике мышкой в любом месте экрана запускалась некая процедура. Например UserSub(). Причём она должна запускаться независимо от того где (в каком месте) экрана произошёл щелчок. Неплохо если какая-нибудь ф-ция будет выводить hwnd окна(элемента управления), в котором произошёл щелчок.

К категории больших знатоков в программировании не отношусь. Если кто-нибудь сталкивался с такой проблемкой пожалуйста помогите хотя бы советами. Жаль нет поиска по форуму.
Mouse_click в любых (чужих) окнах

Ответить

  Ответы Всего ответов: 13  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 03.03.08 22:03
Первыйнах! Юзай мышиные хуки!

Ответить

Номер ответа: 2
Автор ответа:
 GeniX



ICQ: 418811267 

Вопросов: 40
Ответов: 243
 Web-сайт: porrygatter.zx6.ru
 Профиль | | #2
Добавлено: 04.03.08 07:10
А поиск есть.

Ответить

Номер ответа: 3
Автор ответа:
 intel-DX



ICQ: 445091742 

Вопросов: 4
Ответов: 169
 Профиль | | #3 Добавлено: 04.03.08 09:37

Declare Function SendInput Lib "user32.dll" (ByVal nInputs As Long, pInputs As GENERALINPUT, ByVal cbSize As Long) As Long



The SendInput function synthesizes keystrokes, mouse motions, and button clicks

Юзай

Ответить

Номер ответа: 4
Автор ответа:
 GDK



Вопросов: 13
Ответов: 348
 Профиль | | #4 Добавлено: 04.03.08 12:45
  Про хуки читал. Пока плохо врубаюсь. Да и страшновато как то. Кое где пишут что можно нарушить работу других "грамотно написанных" программ если неграмотно написать свою.
  И впрямь поиск есть. Спсб что подсказал. Воспользуюсь.
  

Ответить

Номер ответа: 5
Автор ответа:
 GDK



Вопросов: 13
Ответов: 348
 Профиль | | #5 Добавлено: 04.03.08 13:31
SendInput не подойдёт. Вот что нашёл: Функция SendInput синтезирует нажатия клавиши, движения и щелчки кнопкой мыши. А нужно отловить, а не сгенерировать.

Ответить

Номер ответа: 6
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #6
Добавлено: 04.03.08 17:22
Да никто твоей программе не станет передавать события мыши если не захучишь её (мышь)

Ответить

Номер ответа: 7
Автор ответа:
 GDK



Вопросов: 13
Ответов: 348
 Профиль | | #7 Добавлено: 04.03.08 18:46
Приговор понял. Ни у кого нет исходника как это сделать? А то почитал про то как это сделать (API ф-ция SetWindowsHookEx) и понял что при этом надо чтобы существовала *.dll, одной из функций которой будут передаваться сообщения. А моя процедура - в VBA т.е. работает из Excel. Таскать с каждым файлом *.dll - не годится. К тому же: не будет ли ругаться Касперский или др. AVP если поставить хук? Ведь хуки на клаву используются для взлома паролей в программах - шпионах.
Изначально вопрос был такой: отловить событие щелчка на кнопке "отменить" в Excel. Стандартного события для этого не существует т.к. кнопка "отменить" на самом деле не кнопка меню, а ComboBox меню, у которого есть только Change.
Так вот решил сделать это через API. Нашёл GetMessage. Задачу почти решил т.к. моя программа - это часть процесса Excel(я). Потом стало интересно а если надо будет отловить клик или т.п. для Worda или вообще другой проги? Сначала думал что это не сложно (всего то спросить у Винды: а какое ты посылаешь сообщение любой из программ) но как начал поиски - оказался в Жп.
Может быть я не точно задал вопрос(и не в том форуме) но всё же вопрос интересный и наверное многим будет полезно решение этой задачи. Так или иначе постараюсь написать исходник, если получится - выложу, а то про хуки примеры на С++, Делфи и т.п., а вот для VB не встречалось.

Ответить

Номер ответа: 8
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #8
Добавлено: 04.03.08 19:47
Не встречал примеров хука для VB? Х_х
Да он ведь используется везде для перехвата всего чего только можно=) Возможности уильно увеличиваются.. Вот только с отладкой кода проблемы

Ответить

Номер ответа: 9
Автор ответа:
 GDK



Вопросов: 13
Ответов: 348
 Профиль | | #9 Добавлено: 07.03.08 09:53
Ну правда не встречал. Нашёл пару примеров, но без описаний, комментарии на англ., и хуки там ставятся на клаву и под конкретные цели. В общем пока не получается разобраться. Может подскажете где поискать. Сам искал через Рамблер "хуки" и "Hook". Да кстати. Возможно ли всё таки поставить хук на мышь(клаву) через VB, причём чтобы не надо было использовать *.dll.

Ответить

Номер ответа: 10
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #10
Добавлено: 08.03.08 00:52
Первое: Смысл искать рунетовским поисковиком? сам ограничиваешь большую часть ресурсов. тем более гугл частично отечественный поисковик))
также здесь очень много полезного: http://planet-source-code.com/vb

без длл можно

Ответить

Номер ответа: 11
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #11
Добавлено: 09.03.08 12:01
Если ставишь глобальный хук, то без внешней либы нельзя. Только если для отдельного окна.

Ответить

Номер ответа: 12
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #12
Добавлено: 09.03.08 20:04
и правда...

Ответить

Номер ответа: 13
Автор ответа:
 GDK



Вопросов: 13
Ответов: 348
 Профиль | | #13 Добавлено: 11.03.08 13:29
Ну спсб всем за всё. Может чё нарою. Жаль с англ. яз. беда.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам