Страницы: 1
RSS
Имитация клика мыши при заблокированной системе
 
Добрый день!
Требуется ваша помощь!
Пытаюсь автоматизировать некий процесс через VBA.
В 1ом из пунктов требуется нажать кнопку в другой программе, но проблема в том, что эта кнопка не определяется как элемент управления (ни через PostMessage ни через  SendMessage активировать ее не выйдет, у нее попросту отсутствует hwnd)
Я решил эту проблема имитацией клика мыши по определенным координатам, но дописав код понял, что имитация клика не работает при заблокированном компьютере, а для меня это критично (макрос должен будет запускаться ночью, а компьютер запрещено держать не заблокированным)
Возможно вы сможете подсказать как произвести имитацию клика при заблокированном компьютере?
Заранее спасибо!
Дубль темы
Изменено: Exzem - 22.05.2019 15:51:51
 
Exzem, здравствуйте.

Это точно программа? Не страничка сайта?
Как насчет клавиши TAB? Выделяются ли кнопки в программе?
 
Jungl, доброй ночи.
Да, пользовательская программа предположительно написанная на C#. Tab и горячие клавиши не работают
 
Exzem,  Если ПК блокируется, то скорее всего при разблокировке требуется ввод пароля, а это приводит к необходимости ввода его из гипотетического кода, а это означает что оное должно в этом коде или в настройках хранится, а это - ну просто ужас по сравнению с незаблокированным компом. Иными словами, корректно работать с интерактивным режимом при необходимости блокировки ПК невозможно. Но Вам достаточно
SendKeys "{ENTER}"

проверить можно так, запускаем test
Код
Sub sendenter()
SendKeys "{ENTER}"

End Sub
Sub test()
Application.OnTime Now() + CDate("00:00:10"), "sendenter"
Shell "Rundll32.exe user32.dll,LockWorkStation"
End Sub

через 10 сек. должно запросить пароль разблокировки.
хотите кликать мышой?
http://www.cyberforum.ru/vba/thread734468.html
Изменено: БМВ - 22.05.2019 13:05:03
По вопросам из тем форума, личку не читаю.
 
БМВ, макросы сами по себе, и взаимодействие с элементами управления через тот же SendMessage работает при блокированном компьютере, проблема только с взаимодействием мышки. Вопрос как раз и стоит в ином методе имуляции мыши, т.е. совершить клик не задействуя мышку, но спасибо за ссылку, почитаю на работе.
 
БМВ, по ссылке описывается метод через GetCursorPos, а он как раз и не работает при блокировке
 
Только хотел написать просьбу сообщить результат ибо не понимаю чего вы хотите добится этим кликом. Интерфейс блокирован.
По вопросам из тем форума, личку не читаю.
 
БМВ, Верно, интерфейс блокирован для работы с мышкой, но другие функции, обращающиеся непосредственно к элементам ( тот же SendMessage) работают, вот я и подумал, а вдруг есть что-то на подобии, имитирующее клик по координатам, но при этом не затрагивающее мышку.....фантазия..
 
Если кому интересен ответ:
Справится помог Autoit,а точнее его библиотека. Функция controlclick не обязательно должна ссылаться на кнопку, можно ориентироваться на окно программы и дополнительно прописать координаты места, на которое нужно кликнуть.
Жаль не получилось понять, как делать то же самое, но через SendMessage....
Страницы: 1
Наверх