26 (изменено: stealzy, 2017-12-03 14:16:27)

Re: AHK: Функции в параметрах, разрешение, масштабирование.

Viruzober, вы всегда сначала суете, а потом думаете?
Может сначала стоит определить, подвержено ли содержимое окна масштабированию? Измерьте отличаются ли расстояния при разных DPI.
Интерфейс нестандартный, значит скорее всего нет, масштабированию подвергается только внешняя часть окна, а не клиентская область.

CoordMode Mouse, Client

27

Re: AHK: Функции в параметрах, разрешение, масштабирование.

serzh82saratov пишет:

А в чём отличие?

А я и не знал про A_ScreenDPI.

serzh82saratov пишет:

Вот, потому в общем случае будет полезен DPI самого окна, а не общий.

Что за DPI окна? Можно как-то узнать, масштабируется окно, или нет?

Viruzober пишет:

пробовал со ScalingRatio, 193 выдало как 241.25 при масштабе 1.50. ... Нашел руководство по A_ScreenDPI. Проверил ваш вариант, 193 превратилось в 289.5 при масштабе 1.5, и опять мимо.

Хотите сказать, эти варианты выдают разные числа при одинаковом масштабе?

MsgBox, % 193*A_ScreenDPI/96 . "`n" . 193*GetScalingRatio()

GetScalingRatio()  {
   hDC := DllCall("GetDC", Ptr, 0, Ptr)
   hDPI := DllCall("GetDeviceCaps", Ptr, hDC, Int, LOGPIXELSX := 88)
   DllCall("ReleaseDC", Ptr, 0, Ptr, hDC)
   Return hDPI/24*25/100
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

28 (изменено: serzh82saratov, 2017-12-03 20:01:05)

Re: AHK: Функции в параметрах, разрешение, масштабирование.

teadrinker пишет:

Что за DPI окна?

Аналогично -DPIScale или +DPIScale.

teadrinker пишет:

Можно как-то узнать, масштабируется окно, или нет?

Не знаю, не пробовал. Вот вроде для 10. Для неизветного окна на практике это видимо не понадобится, а для известного это можно проверить на практике. Вывод: если у окна +DPIScale, то просто умножаем координаты на (A_ScreenDPI / 96), иначе ничего не делаем. Координаты конечно только в клиентской области.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.26.01 (Unicode 32-bit).

29 (изменено: Viruzober, 2017-12-03 21:27:14)

Re: AHK: Функции в параметрах, разрешение, масштабирование.

stealzy Хорошо, как выделить клиентскую часть окна, точнее как указывать координаты, чтобы они относились к этой части? То что подразумевается здесь под клиентской частью, не отдает контролов, все что возвращает эта часть независимо от выбранного объекта. NIVSTChildWindow00007FF9138500001

win 10.0.14393 Build 14393 x64, AutoHotkey 1.1.26.01.

30

Re: AHK: Функции в параметрах, разрешение, масштабирование.

teadrinker и звените, мой косяк, между проверками перезагружал комп, масштабирование вставало на место, поэтому разные числа, да еще тема слетела, получился винегрет, теперь все правильно, абсолютно одинаковые результаты.

win 10.0.14393 Build 14393 x64, AutoHotkey 1.1.26.01.

31

Re: AHK: Функции в параметрах, разрешение, масштабирование.

Меню Пуск → Программы → AutoHotkey → Active Window Info (Window Spy) → Mouse Position → Client.

Viruzober пишет:

возвращает NIVSTChildWindow00007FF9138500001

Куда возвращает? Откуда возвращает? Что возвращает? ...