Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Управление курсором мыши в полноэкранном режиме внеш програм - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Управление курсором мыши в полноэкранном режиме внеш програм
Roman777 Дата: Среда, 14.10.2015, 11:26 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Добрый день!
Управляю курсором мыши следующим образом (нашёл на просторах интернета):
[vba]
Код
'Подключение функции API Windows "mouse_event" из Виндосовской библиотеки "user32", которая позваляет управлять мышью
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal dwData As Long, ByVal dwExtraInfo As Long)
'Значения параметра dwFlags, определяющие поведение функции mouse_event
Private Const MouseEvDown = &H2  'Нажать левую кнопку
Private Const MouseEvUp = &H4  'Отпустить левую кнопку
'Подключение функции API Windows "SetCursorPos", которая устанавливает позицию курсора мыши по координатам, соответствующим разрешению вашего монитора
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
'Подключение фукнции API Windows "GetCursorPos",которая позволяет отслеживать положение курсора мыши по координатам экрана монитора (для проверки координат)
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTTYPE) As Long
'Подключение функции API Windows "Sleep", её можно использовать вместо таймера, выставляя задержки в милисекундах
Private Declare Sub Sleep Lib "kernel32" (ByVal milliseconds As Long)

Sub MouseClick(x, y) 'Клик мыши по координатам (x,y)
Call SetCursorPos(x, y)
mouse_event MouseEvDown, 0, 0, 0, 0
mouse_event MouseEvUp, 0, 0, 0, 0
End Sub
[/vba]
Но я так понял, что при запуске внешней программы в полноэкранном режиме данная процедура не станет работать (наверное потому что в другом приложении нету API или ещё по каким-либо многим причинам). Куда копать, что почитать можно на данную тему? ато я пока ниче найти конкретное не могу...


Много чего не знаю!!!!
 
Ответить
СообщениеДобрый день!
Управляю курсором мыши следующим образом (нашёл на просторах интернета):
[vba]
Код
'Подключение функции API Windows "mouse_event" из Виндосовской библиотеки "user32", которая позваляет управлять мышью
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal dwData As Long, ByVal dwExtraInfo As Long)
'Значения параметра dwFlags, определяющие поведение функции mouse_event
Private Const MouseEvDown = &H2  'Нажать левую кнопку
Private Const MouseEvUp = &H4  'Отпустить левую кнопку
'Подключение функции API Windows "SetCursorPos", которая устанавливает позицию курсора мыши по координатам, соответствующим разрешению вашего монитора
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
'Подключение фукнции API Windows "GetCursorPos",которая позволяет отслеживать положение курсора мыши по координатам экрана монитора (для проверки координат)
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTTYPE) As Long
'Подключение функции API Windows "Sleep", её можно использовать вместо таймера, выставляя задержки в милисекундах
Private Declare Sub Sleep Lib "kernel32" (ByVal milliseconds As Long)

Sub MouseClick(x, y) 'Клик мыши по координатам (x,y)
Call SetCursorPos(x, y)
mouse_event MouseEvDown, 0, 0, 0, 0
mouse_event MouseEvUp, 0, 0, 0, 0
End Sub
[/vba]
Но я так понял, что при запуске внешней программы в полноэкранном режиме данная процедура не станет работать (наверное потому что в другом приложении нету API или ещё по каким-либо многим причинам). Куда копать, что почитать можно на данную тему? ато я пока ниче найти конкретное не могу...

Автор - Roman777
Дата добавления - 14.10.2015 в 11:26
SLAVICK Дата: Среда, 14.10.2015, 12:11 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
А зачем в стороннем приложении управлять мышью?
Может просто передать управление этой программой VBA?
См Shell, например здесь


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеА зачем в стороннем приложении управлять мышью?
Может просто передать управление этой программой VBA?
См Shell, например здесь

Автор - SLAVICK
Дата добавления - 14.10.2015 в 12:11
Roman777 Дата: Среда, 14.10.2015, 17:45 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
SLAVICK, Спасибо большое за информацию. Надо изучать...) Всё же на первый взгляд, в данной статье описываются элементы управления, которые относятся к Windows и его объектам. Пока не очень понятно, как можно отыскать окна или объекты другого (внешнего) приложения (особенно, когда оно запущено не в оконном режиме).


Много чего не знаю!!!!
 
Ответить
СообщениеSLAVICK, Спасибо большое за информацию. Надо изучать...) Всё же на первый взгляд, в данной статье описываются элементы управления, которые относятся к Windows и его объектам. Пока не очень понятно, как можно отыскать окна или объекты другого (внешнего) приложения (особенно, когда оно запущено не в оконном режиме).

Автор - Roman777
Дата добавления - 14.10.2015 в 17:45
SLAVICK Дата: Четверг, 15.10.2015, 09:16 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Roman777, каким приложением Вы хотите управлять?
Посмотрите здесь есть примеры запуска блокнота, калькулятора, акробата:
[vba]
Код
acrobatLocation = "C:\Program Files\Adobe\Acrobat 9.0\Acrobat\Acrobat.exe"
acrobatID = Shell(acrobatInvokeCmd, 1)
acrobatID.Quit
[/vba]
таким способом можно управлять практически любым приложением, только нужно знать параметры запуска и управления, если они есть - или дальше управлять через SendKeys, если не знаете параметров :D


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Четверг, 15.10.2015, 09:17
 
Ответить
СообщениеRoman777, каким приложением Вы хотите управлять?
Посмотрите здесь есть примеры запуска блокнота, калькулятора, акробата:
[vba]
Код
acrobatLocation = "C:\Program Files\Adobe\Acrobat 9.0\Acrobat\Acrobat.exe"
acrobatID = Shell(acrobatInvokeCmd, 1)
acrobatID.Quit
[/vba]
таким способом можно управлять практически любым приложением, только нужно знать параметры запуска и управления, если они есть - или дальше управлять через SendKeys, если не знаете параметров :D

Автор - SLAVICK
Дата добавления - 15.10.2015 в 09:16
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!