И Вам, здоровья!
В первом посте упоминается:
efremov30ev пишет:Можно ли как-то добавить проверку разрешения не монитора, а отдельного окна?
В последнем примере нет ни намёка на взаимодействие с окном.
Чтобы не получилось так, что мы говорим о разных вещах, процитирую Вас, как я понял суть вопроса.
Есть некая программа, которая запускается на разных машинах, от чего окно её пользовательского интерфейса имеет разные размеры при разных разрешениях. Так же, программа может быть не развёрнута на весь экран и находиться в произвольной области рабочего стола. В этой связи возникает сложность взаимодействовать с элементами интерфейса скриптом.
Если всё так, то обсуждение должно называться иначе, так как название не совсем, или даже совсем не отражает то, с чем у Вас возникли трудности.
Или перефразируйте пожалуйста так, чтобы было понятно.
Если всё же мне не показалось, то для взаимодействия с окнами, всегда требуются их идентификаторы. Узнать идентификатор нужного окна можно кликнув правой кнопкой мыши по иконке(в трее) любого запущенного AHK-сценария и выбрать в контекстном меню "Window Spy". Появится окошко, в верхней части которого, под "Window Title, Class and Process:" будет расположен блок, содержащий все идентификаторы активного окна. Кликните в любом месте нужного Вам окна и этот блок автоматически заполнится искомыми значениями в порядке:
- Заголовок окна.
- Класс окна.
- Процесс, которому принадлежит окно.
- Идентификатор процесса.
Выберите любую строчку с понравившимся идентификатором и поместите его в переменную сценария. Теперь, чтобы получить какие-либо данные о положении и размере окна, нужно передать имя этой переменной в качестве аргумента соответствующей встроенной функции AHK, работающей с окнами. Приведу пример с браузером Chrome:
#NoEnv
#SingleInstance, Force
chrome_window := "ahk_class Chrome_WidgetWin_1"
; Проверяем существование окна браузера Chrome
if (WinExist(chrome_window)) {
; Окно найдено. Получаем его координаты и размер
WinGetPos, x, y, w, h,% chrome_window
MsgBox,Окно браузера найдено в координатах:`n`tx = %x%`n`ty = %y%`nЕго размеры составляют:`n`tширина = %w%`n`tвысота = %h%
} else {
MsgBox,16,Ошибочка,Не удалось найти окно браузера Chrome.
}
Попробуйте применить это в своей поделке и приходите вновь, если что-то будет непонятно.