Добрый день! Требуется ваша помощь! Пытаюсь автоматизировать некий процесс через VBA. В 1ом из пунктов требуется нажать кнопку в другой программе, но проблема в том, что эта кнопка не определяется как элемент управления (ни через PostMessage ни через SendMessage активировать ее не выйдет, у нее попросту отсутствует hwnd) Я решил эту проблема имитацией клика мыши по определенным координатам, но дописав код понял, что имитация клика не работает при заблокированном компьютере, а для меня это критично (макрос должен будет запускаться ночью, а компьютер запрещено держать не заблокированным) Возможно вы сможете подсказать как произвести имитацию клика при заблокированном компьютере? Заранее спасибо! Дубль темы
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
БМВ, макросы сами по себе, и взаимодействие с элементами управления через тот же SendMessage работает при блокированном компьютере, проблема только с взаимодействием мышки. Вопрос как раз и стоит в ином методе имуляции мыши, т.е. совершить клик не задействуя мышку, но спасибо за ссылку, почитаю на работе.
БМВ, Верно, интерфейс блокирован для работы с мышкой, но другие функции, обращающиеся непосредственно к элементам ( тот же SendMessage) работают, вот я и подумал, а вдруг есть что-то на подобии, имитирующее клик по координатам, но при этом не затрагивающее мышку.....фантазия..
Если кому интересен ответ: Справится помог Autoit,а точнее его библиотека. Функция controlclick не обязательно должна ссылаться на кнопку, можно ориентироваться на окно программы и дополнительно прописать координаты места, на которое нужно кликнуть. Жаль не получилось понять, как делать то же самое, но через SendMessage....