Code: Select all
#Requires AutoHotkey v2.0
; Запускаем программу
Run("C:\Program Files\VoiceAttack\VoiceAttack.exe")
Sleep(5000) ; Ожидание 2 секунды для открытия окна
; Находим окно программы
win := WinExist("ahk_exe VoiceAttack.exe") ; Поиск окна по имени процесса
if win
{
; Проверяем активность окна
if !WinActive(win)
{
WinActivate(win)
Sleep(500) ; Небольшая пауза для активации окна
}
; Отладка: Выводим найденный идентификатор окна
MsgBox("Найдено окно! HWND: " . win)
; Получаем позицию окна с помощью WinGetPos
; Используем & для передачи переменных по ссылке
x := 0, y := 0, w := 0, h := 0
WinGetPos(&x, &y, &w, &h, win)
if (x != 0 && y != 0) ; Проверка, получены ли координаты
{
MsgBox("Координаты окна: X: " . x . ", Y: " . y . ", Ширина: " . w . ", Высота: " . h)
; Вычисляем координаты для клика (537 по оси X, 0 по оси Y)
ClickX := x + 544
ClickY := y + 55
MsgBox("Клик по координатам: X: " . ClickX . ", Y: " . ClickY)
; Выполняем клик
Click(ClickX, ClickY)
}
else
{
; Если получить данные не удалось
MsgBox("Не удалось получить позицию окна с помощью WinGetPos!")
}
}
else
{
MsgBox("Окно VoiceAttack не найдено! Проверьте имя процесса.")
}
Но просто убираем из скрипта все MsgBox и скрипт работать перестает. Просто не кликает туда куда нужно: ClickX := x + 544
ClickY := y + 55. Курсор просто улетает куда-то за правый край экрана.
Мучил все хваленые нейросети, но они так и не разобрались, хотя я посылал им все ошибки, которые выскакивали после их предложений.