1

Тема: AHK: Искажение переменной при добавлении изображения.

Всех приветствую.
Простейшая конструкция:

#NoEnv
HelpHeight := 303

	F4::
		Gui, New, -Border, HelPic
		Gui, Margin, 0, 0
		Gui, Add, Picture, w-1 h%HelpHeight%, Test 01.png
		Gui, Show
		Return

Она выведена из более сложной, но в данном случае это не важно.
Суть в том, что при подстановке переменной HelpHeight для задания высоты изображения, с ней происходят непонятные трансформации. Её значение меняется. При изначальном значении 303, она превращается почему-то в 530. Если изначально значение другое, результат, соответственно, тоже меняется.
Непонятно, что именно с ней происходит и почему.
Интересно то, что на одном компьютере с Win7 все работает как надо, без искажений, а на другом, с Win10, происходят вот такие странности. Стабильно и там и там.
Кто-нибудь может что-то подсказать здесь?

2

Re: AHK: Искажение переменной при добавлении изображения.

Проверял на Windows 10, ничего такого не происходит. Из вашего кода непонятно, каким образом и когда вы узнаёте, что переменная изменилась. Поэтому делаю предположение, что изменяется она где-то в другом месте скрипта. Для чистоты эксперимента проверяйте так:

#NoEnv
HelpHeight := 303

   F4::
      MsgBox, % HelpHeight
      Gui, New, -Border, HelPic
      Gui, Margin, 0, 0
      Gui, Add, Picture, w-1 h%HelpHeight%, Test 01.png
      Gui, Show
      MsgBox, % HelpHeight
      Return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Искажение переменной при добавлении изображения.

Не, сама переменная в скрипте в целом остается неизменной. Её значение меняется только в строке Gui, Add, Picture
Наверное, стоило сформулировать проблему иначе. Переменная не меняется, а неправильно обрабатывается при задании высоты изображения.
Проверял, добавив такое:

	F5::
		WinGetPos, , , , WinHeight, HelPic
		MsgBox % WinHeight A_Space HelpHeight
		Return

Ориентируясь на размер окна. Размер окна должен быть 309, а он 536.
Собственно, вот этот кусок, добавленный к тому, что в шапке это и есть весь скрипт. То есть, уже в этом виде он работает некорректно.

4

Re: AHK: Искажение переменной при добавлении изображения.

Возможно, в системе задано масштабирование экрана, отличное от 100%. Попробуйте так:

#NoEnv
HelpHeight := 303

   F4::
      Gui, New, -Border -DPIScale, HelPic
      Gui, Margin, 0, 0
      Gui, Add, Picture, w-1 h%HelpHeight%, Test 01.png
      Gui, Show
      Return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Искажение переменной при добавлении изображения.

А вот, кстати, про масштабирование экрана я не подумал. Это возможно.
Спасибо, за наводку, а то я всю голову себе сломал .