From 4d3eaa0344e3e64aa1d288dc5f1f32f9fce1489a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Ankarstr=C3=B6m?= Date: Fri, 23 Oct 2020 01:23:13 +0200 Subject: release 1.1 --- CHANGELOG.txt | 9 +++++++++ drm.ahk | 49 +++++++++---------------------------------------- drm.exe | Bin 830976 -> 836608 bytes 3 files changed, 18 insertions(+), 40 deletions(-) create mode 100644 CHANGELOG.txt diff --git a/CHANGELOG.txt b/CHANGELOG.txt new file mode 100644 index 0000000..74eecb7 --- /dev/null +++ b/CHANGELOG.txt @@ -0,0 +1,9 @@ +CHANGELOG ----------------------- 1.1 ---------------------- 2020-04-29 + +FIX: Removed exception for 2KCLIENT.EXE (forgot to remove it in origi- + nal version) +FIX: Now takes taskbar size into account when calculating window posi- + tions and sizes, by using MonitorWorkArea instead of absolute + screen area. +FIX: Removed unnecessary embedded tray icon. Now it just uses the exe- + cutable's icon. \ No newline at end of file diff --git a/drm.ahk b/drm.ahk index f214ea1..ed864ab 100644 --- a/drm.ahk +++ b/drm.ahk @@ -25,7 +25,6 @@ Start: Resolutions := StrSplit(ResolutionsString, "|") Menu, Tray, NoStandard Menu, Tray, Tip, Dynamic Resolution Manager -Menu, Tray, Icon, % "HBITMAP:*" . Create_tray_ico() for k, res in Resolutions Menu, Tray, Add, %res%, SelectMenuResolution Menu, Tray, Add @@ -82,25 +81,30 @@ SetResolution(Width, Height, ColorDepth := 32) Save(ByRef Positions) { Positions := {} - WinGet, id, list,,, ahk_exe 2KCLIENT.EXE + WinGet, id, list + SysGet, WorkArea, MonitorWorkArea + Width := WorkAreaRight - WorkAreaLeft + Height := WorkAreaBottom - WorkAreaTop Loop, %id% { i := id%A_Index% WinReallyGetPos(i, x, y, w, h) - WinGetTitle, title, ahk_id %i% - Positions[i] := [x / A_ScreenWidth, y / A_ScreenHeight, w / A_ScreenWidth, h / A_ScreenHeight] + Positions[i] := [x / Width, y / Height, w / Width, h / Height] } } Restore(Positions) { + SysGet, WorkArea, MonitorWorkArea + Width := WorkAreaRight - WorkAreaLeft + Height := WorkAreaBottom - WorkAreaTop for i, props in Positions { x := props[1] y := props[2] w := props[3] h := props[4] - WinReallyMove(i, x * A_ScreenWidth, y * A_ScreenHeight, w * A_ScreenWidth, h * A_ScreenHeight) + WinReallyMove(i, x * Width, y * Height, w * Width, h * Height) } } @@ -127,39 +131,4 @@ WinReallyMove(hwnd, x, y, w, h) NumPut(w + x, wp, 36, "int") NumPut(h + y, wp, 40, "int") DllCall("SetWindowPlacement", "ptr", hwnd, "ptr", &wp) -} - -; ################################################################################## -; # This #Include file was generated by Image2Include.ahk, you must not change it! # -; ################################################################################## -Create_tray_ico(NewHandle := False) { -Static hBitmap := 0 -If (NewHandle) - hBitmap := 0 -If (hBitmap) - Return hBitmap -VarSetCapacity(B64, 2984 << !!A_IsUnicode) -B64 := "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" -If !DllCall("Crypt32.dll\CryptStringToBinary", "Ptr", &B64, "UInt", 0, "UInt", 0x01, "Ptr", 0, "UIntP", DecLen, "Ptr", 0, "Ptr", 0) - Return False -VarSetCapacity(Dec, DecLen, 0) -If !DllCall("Crypt32.dll\CryptStringToBinary", "Ptr", &B64, "UInt", 0, "UInt", 0x01, "Ptr", &Dec, "UIntP", DecLen, "Ptr", 0, "Ptr", 0) - Return False -; Bitmap creation adopted from "How to convert Image data (JPEG/PNG/GIF) to hBITMAP?" by SKAN -; -> http://www.autohotkey.com/board/topic/21213-how-to-convert-image-data-jpegpnggif-to-hbitmap/?p=139257 -hData := DllCall("Kernel32.dll\GlobalAlloc", "UInt", 2, "UPtr", DecLen, "UPtr") -pData := DllCall("Kernel32.dll\GlobalLock", "Ptr", hData, "UPtr") -DllCall("Kernel32.dll\RtlMoveMemory", "Ptr", pData, "Ptr", &Dec, "UPtr", DecLen) -DllCall("Kernel32.dll\GlobalUnlock", "Ptr", hData) -DllCall("Ole32.dll\CreateStreamOnHGlobal", "Ptr", hData, "Int", True, "PtrP", pStream) -hGdip := DllCall("Kernel32.dll\LoadLibrary", "Str", "Gdiplus.dll", "UPtr") -VarSetCapacity(SI, 16, 0), NumPut(1, SI, 0, "UChar") -DllCall("Gdiplus.dll\GdiplusStartup", "PtrP", pToken, "Ptr", &SI, "Ptr", 0) -DllCall("Gdiplus.dll\GdipCreateBitmapFromStream", "Ptr", pStream, "PtrP", pBitmap) -DllCall("Gdiplus.dll\GdipCreateHBITMAPFromBitmap", "Ptr", pBitmap, "PtrP", hBitmap, "UInt", 0) -DllCall("Gdiplus.dll\GdipDisposeImage", "Ptr", pBitmap) -DllCall("Gdiplus.dll\GdiplusShutdown", "Ptr", pToken) -DllCall("Kernel32.dll\FreeLibrary", "Ptr", hGdip) -DllCall(NumGet(NumGet(pStream + 0, 0, "UPtr") + (A_PtrSize * 2), 0, "UPtr"), "Ptr", pStream) -Return hBitmap } \ No newline at end of file diff --git a/drm.exe b/drm.exe index 61d5244..84c68cd 100644 Binary files a/drm.exe and b/drm.exe differ -- cgit v1.2.3