Добрый день.
Версия AutoIt: 3.3.8.1
Описание:
Прошу помочь в следующей ситуации.
Имеется 32 запущенных копии одного и того же приложения (в зависимости от ситуации может быть меньше или больше), постоянно активно только одно или неактивны все, могут быть в свёрнутом виде. Окна приложений имеют одинаковое название (Title) вида: [[hide]] My title 5 [#], но различные поля Class вида: Part1artXart001, где X[[/hide]b] - изменяющееся число; и поля Handle, для каждого своё.
Требуется обратиться к окну по классу и названию (?): передать нажатие клавиш и щелчок мыши (по координатам), а затем перейти к следующему окну для выполнения таких же операций. Функцию для центрирования окон на рабочем столе нагуглил, но пока не работает - скорее всего, разберусь сам.
Видится так: часть PartX в классе окон заранее известна. Допустим, пользователь запустил группу копий от 0 до 31 (может быть 32-63, 64-94, 95-100); просим пользователя указать минимальное и максимальное значения, и на их основе заполняем массив. Далее из массива дёргаем по одному элементу и подставляем в класс при проверке существования окна или его активации: если такое окно есть и оно активно, то необходимо его разместить по центру рабочего стола и проделать нужные нам действия, затем переходим к следующему элементу массива и , соответственно, к следующему окну для выполнения тех же действий.
Примечания:
Набросок скрипта.
Отсебятина:
Беда в том, что с языками программирования я не дружу - кое-что смогу прикрутить сам, а вот с вышеописанным проблемы. Буду благодарен за помощь.
Если что-то не дописал - спрашивайте. Также, если есть варианты проще - пожалуйста, оглашайте - рассмотрю все возможные.
Версия AutoIt: 3.3.8.1
Описание:
Прошу помочь в следующей ситуации.
Имеется 32 запущенных копии одного и того же приложения (в зависимости от ситуации может быть меньше или больше), постоянно активно только одно или неактивны все, могут быть в свёрнутом виде. Окна приложений имеют одинаковое название (Title) вида: [[hide]] My title 5 [#], но различные поля Class вида: Part1artXart001, где X[[/hide]b] - изменяющееся число; и поля Handle, для каждого своё.
Требуется обратиться к окну по классу и названию (?): передать нажатие клавиш и щелчок мыши (по координатам), а затем перейти к следующему окну для выполнения таких же операций. Функцию для центрирования окон на рабочем столе нагуглил, но пока не работает - скорее всего, разберусь сам.
Видится так: часть PartX в классе окон заранее известна. Допустим, пользователь запустил группу копий от 0 до 31 (может быть 32-63, 64-94, 95-100); просим пользователя указать минимальное и максимальное значения, и на их основе заполняем массив. Далее из массива дёргаем по одному элементу и подставляем в класс при проверке существования окна или его активации: если такое окно есть и оно активно, то необходимо его разместить по центру рабочего стола и проделать нужные нам действия, затем переходим к следующему элементу массива и , соответственно, к следующему окну для выполнения тех же действий.
Примечания:
Набросок скрипта.
Код:
HotKeySet('{Esc}','_Stop')
HotKeySet('{Tab}','_Stage1')
HotKeySet('{Home}','_Stage2')
MsgBox(4096,'Напоминание', 'Опции горячих клавишь скрипта: Esc = закончить исполнение скрипта, Tab = первая стадия, Home = вторая стадия.',10)
While 1
Sleep(100)
WEnd
Func _Stage1()
$hMinVal = InputBox("Ввод данных","Введите минимальное число")
$hMaxVal = InputBox("Ввод данных","Введите максимальное число")
EndFunc
Func _Stage2()
EndFunc
Func _Middle()
$hWin = WinWaitActive("[TITLE:[[hide]] My title 5 [[/hide]], CLASS:Part1:Part(переменная, содержащая текущий элемент массива):Part001]", "", 5)
If Not $hWin Then
MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта.')
Call _Stop()
EndIf
$aPos = WinGetPos($hWin)
WinMove($hWin, '', (@DesktopWidth - $aPos[2]) / 2, (@DesktopHeight - $aPos[3]) / 2)
EndFunc
Func _Stop()
While 1
Sleep(100)
WEnd
EndFunc
Отсебятина:
Беда в том, что с языками программирования я не дружу - кое-что смогу прикрутить сам, а вот с вышеописанным проблемы. Буду благодарен за помощь.
Если что-то не дописал - спрашивайте. Также, если есть варианты проще - пожалуйста, оглашайте - рассмотрю все возможные.