1

Тема: AHK: Определить соотношение сторон

Понадобилось определить и автоматически подстраивать Gui под разные мониторы, на форуме не нашёл ответа, попробовал напрячь ИИ. Может кому пригодится.

Первая версия кода:

width := 1920
height := 1080

; Получение сокращенной дроби и НОД
result := ReduceFraction(width, height)

; Вывод результата
MsgBox, Соотношение сторон: %result%

ReduceFraction(x, y) {
    gcd := GCD(x, y)
    reducedWidth := x // gcd
    reducedHeight := y // gcd
    Return reducedWidth ":" reducedHeight
}

GCD(X, Y) {
    while (Y) {
        R := Mod(X, Y)
        X := Y
        Y := R
    }
    Return X
}
Return

В виде двух функций не особо хотелось, напряг ИИ ещё немного +сократил код:

MsgBox, % "Соотношение сторон монитора: " ReduceFraction(A_ScreenWidth, A_ScreenHeight)

ReduceFraction(X, Y){	;23:39 05.08.2023 [БОТ]
 GCD := X, D := Y
 While(D)
  M := Mod(GCD, D), GCD := D, D := M
 Return (X // GCD) ":" (Y // GCD)
}
Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

2

Re: AHK: Определить соотношение сторон

Прекрасный пример использования ИИ!

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder