Что нового

Как в Autoit исправить ложное видение разрешения экрана в windows 8.1?

iamOmg

Новичок
Сообщения
97
Репутация
2
Скачал Autoit версии 3.3.14.0 c SciTE Version 3.5.4 на windows 8.1, попробовал с помощью Autoit Window Info цвета пикселей получить. Обнаружил что нижний правый угол экрана он видит с координатами 1535, 863 хотя экран работает с разрешением 1920 на 1080. Но это ещё не все, если в AWInfo включить опцию Magnify то сразу становится видно что координаты смещаются. К примеру на этом скриншоте видно что курсор наведён куда-то на облака, хотя программа на самом деле смотрит на красный крестик. Что можно сделать в такой ситуации?

s9.uploads.ru/hMeas.png
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Re: Autoit видит экран со сбитыми координатами

Попробуй поменять в меню Options режим Coord Mode.
 
Автор
iamOmg

iamOmg

Новичок
Сообщения
97
Репутация
2
Re: Autoit видит экран со сбитыми координатами

неа, ничего не меняется.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Re: Autoit видит экран со сбитыми координатами

А можно скриншот перезалить, а то я не могу его открыть в полном размере.
 
Автор
iamOmg

iamOmg

Новичок
Сообщения
97
Репутация
2
Re: Autoit видит экран со сбитыми координатами

https://www.dropbox.com/s/3avuagd10v51r34/2015-07-21_14-50-04.png?dl=0
 

knocker

Новичок
Сообщения
4
Репутация
1
Re: Autoit видит экран со сбитыми координатами

У тебя масштаб интерфейса стоит 125% и винда отдает внешним программам кривое разрешение экрана. Болезнь восьмерки.
 
Автор
iamOmg

iamOmg

Новичок
Сообщения
97
Репутация
2
Re: Autoit видит экран со сбитыми координатами

И как это исправить?
UPD. Уже нашел. Однако это серьёзная проблема, ибо тогда программами autoit смогут пользоваться только те у кого windows 7, а так же пещерные люди с XP. Не заставлять же всех масштаб изменять, у меня так всё теперь супер мелко стало. :shok:


Добавлено:
Сообщение автоматически объединено:

Что, неужели никто не знает как бороться с этой ерундой? Ведь существенная аудитория проектов на autoit пойдёт лесом, не будет же каждый масштаб менять, тем более у тех у кого 4K мониторы, у них вообще всё мелко станет же.
 

knocker

Новичок
Сообщения
4
Репутация
1
Это не проблема AutoIt это проблема винды. Игрушкам она тоже отдает кривое разрешение.
А зачем ты жестко привязываешься к разрешению? Почему нельзя использовать внутренние макросы?
Код:
ConsoleWrite("Разрешение экрана: " & @DesktopWidth & " x " & @DesktopHeight & @CRLF)
 
Автор
iamOmg

iamOmg

Новичок
Сообщения
97
Репутация
2
Не совсем понял про что идёт речь. Можно поподробней пожалуйста? Как проблему то решить?
 

knocker

Новичок
Сообщения
4
Репутация
1
Пример выше показывает работу встроенных макросов
Код:
@DesktopWidth
и
Код:
@DesktopHeight

если надо проверить наличие группы пикселей в определенном месте экрана, то можно привязаться к этим данным. Например:
Код:
$result=666666666; сюда ставится результат вычисления PixelChecksum
$x=@DesktopWidth - 100
$y=@DesktopHeight - 50
	Do
		Sleep(100)
	Until PixelChecksum($x, $y, $x+5, $y+5) = $result


Если результат вычисления PixelChecksum изменяется в зависимости от разрешения, то можно занести предварительно вычисленные значения в массив и подставлять нужное в переменную $result.
 
Автор
iamOmg

iamOmg

Новичок
Сообщения
97
Репутация
2
Лучше тогда найти способ временного изменения масштабирования экрана средствами autoit
 
Верх