12-12-2022, 04:30 PM
I go the other route. Instead of Windows Magnifier, I wear Google glasses. My wife likes them, too. Oh, shes says they look stupid as hell, but she really appreciates the auto-complete function.
Magnification 10 Mr. Sulu! Works better on my 1278 x 768 resolution at that setting.
Did you consider trying this out with the app running as a transparent window?
Press Esc to quit. Change level to 200 on another run to see that there is really something covering your screen.
I imagine the two would play well together, and that way your magnifier window isn't part of the desktop.
Pete
Magnification 10 Mr. Sulu! Works better on my 1278 x 768 resolution at that setting.
Did you consider trying this out with the app running as a transparent window?
Press Esc to quit. Change level to 200 on another run to see that there is really something covering your screen.
Code: (Select All)
CONST HWND_TOPMOST%& = -1
CONST SWP_NOSIZE%& = &H1
CONST SWP_NOMOVE%& = &H2
CONST SWP_SHOWWINDOW%& = &H40
DECLARE DYNAMIC LIBRARY "User32"
FUNCTION GetWindowLongA& (BYVAL hwnd AS LONG, BYVAL nIndex AS LONG)
FUNCTION SetWindowPos& (BYVAL hWnd AS LONG, BYVAL hWndInsertAfter AS _OFFSET, BYVAL X AS INTEGER, BYVAL Y AS INTEGER, BYVAL cx AS INTEGER, BYVAL cy AS INTEGER, BYVAL uFlags AS _OFFSET)
FUNCTION SetWindowLongA& (BYVAL hwnd AS LONG, BYVAL nIndex AS LONG, BYVAL dwNewLong AS LONG)
FUNCTION GetForegroundWindow&
FUNCTION SetLayeredWindowAttributes& (BYVAL hwnd AS LONG, BYVAL crKey AS LONG, BYVAL bAlpha AS _UNSIGNED _BYTE, BYVAL dwFlags AS LONG)
END DECLARE
SCREEN _NEWIMAGE(_DESKTOPWIDTH, _DESKTOPHEIGHT, 32)
_SCREENMOVE 0, 0
GWL_STYLE = -16
ws_border = &H800000
WS_VISIBLE = &H10000000
_TITLE "Transparent Window"
DIM hwnd AS LONG
hwnd = _WINDOWHANDLE
_DELAY .1
Level = 0 ' Range 0 - 255
SetWindowOpacity hwnd, Level
winstyle2& = GetWindowLongA&(hwnd, GWL_STYLE)
winstyle& = -12582913
a& = SetWindowLongA&(hwnd, GWL_STYLE, winstyle& AND WS_VISIBLE) ' AND NOT WS_VSCROLL) ' AND NOT ws_border)
a& = SetWindowPos&(hwnd, 0, 0, 0, 0, 0, 39)
DO
_LIMIT 5
IF INKEY$ = CHR$(27) THEN EXIT DO
LOOP
SYSTEM
SUB SetWindowOpacity (hwnd AS LONG, Level)
DIM Msg AS LONG
CONST G = -20
CONST LWA_ALPHA = &H2
CONST WS_EX_LAYERED = &H80000
Msg = GetWindowLongA&(hwnd, G)
Msg = Msg OR WS_EX_LAYERED
action = SetWindowLongA&(hwnd, G, Msg)
action = SetLayeredWindowAttributes(hwnd, 0, Level, LWA_ALPHA)
END SUB
I imagine the two would play well together, and that way your magnifier window isn't part of the desktop.
Pete