Hi David ,
I’m Jung one of the Independent Advisor and I’d be happy to help you out with your question.
For a short time following a WIndows update this was fixed on my laptop but after another day, and maybe another update, the problem returned, so I don't understand what the conditions are.
The script below checks for maximized windows and sets their size to a few pixels less than the screen size and this brings back tooltips.
I have found another way to fix the problem which might help some people. There are several programs I use regularly and the tooltips are important. On the programs I compile the tooltips help my users if they are not familiar with using the programs. If I set the maximum window size to be greater than the screen size ( @DesktopHeight/@Desktopwidth) then when maximized it still fits the screen ok but the tooltips still work. This can be done in AUtoIt with
GUIRegisterMsg($WM_GETMINMAXINFO, "MY_WM_GETMINMAXINFO")---- (search for examples)
In Delphi it can be done with Form.Constraints. I don't know about other languages.
For apps where the maximum size can't be controlled the script below could help someone; it helps me at least.
Const $SPI_SETWORKAREA = 47, $SPI_GETWORKAREA = 48, $SPIF_SENDCHANGE = 11
$StartRect = DllStructCreate("int[4]")
$PStartRect = DllStructGetPtr($StartRect)
$res = DllCall("user32.dll", "int", "SystemParametersInfo", "int", $SPI_GETWORKAREA, "int", 0, "ptr", $PStartRect, "int", 0)
$maxwid = DllStructGetData($StartRect, 1, 3) - DllStructGetData($StartRect, 1, 1)
$maxht = DllStructGetData($StartRect, 1, 4) - DllStructGetData($StartRect, 1, 2)
While 1
$aList = WinList()
$res = DllCall("user32.dll", "int", "SystemParametersInfo", "int", $SPI_GETWORKAREA, "int", 0, "ptr", $PStartRect, "int", 0)
$maxwid = DllStructGetData($StartRect, 1, 3) - DllStructGetData($StartRect, 1, 1)
$maxht = DllStructGetData($StartRect, 1, 4) - DllStructGetData($StartRect, 1, 2)
For $i = 1 To $aList[0][0]
If $aList[$i][0] <> 'Program Manager' Then
$ws = WinGetPos($aList[$i][1])
if isarray($ws) then;for some reason it isn't always
If $aList[$i][0] <> "" And $ws[2] > $maxwid And $ws[3] > $maxht Then
WinSetState($aList[$i][1], '', @SW_RESTORE);because changing the size leaves it as maximised as far as Windows is concerned!
WinMove($aList[$i][1], '', $ws[0],$ws[1], $maxwid, $maxht)
Endif
EndIf
EndIf
Next
Sleep(5000)
WEnd
You may check this thread below:
https://www.excelforum.com/excel-general/715988-missing-tooltip.html
https://www.autoitscript.com/forum/topic/180132-fix-missing-tooltips-in-windows-10/
Note: This is a non-Microsoft website. The page appears to be providing accurate, safe information. Watch out for ads on the site that may advertise products frequently classified as a PUP (Potentially Unwanted Products). Thoroughly research any product advertised on the site before you decide to download and install it.
I hope this information helps. If you have any questions, please let me know and I’ll be glad to assist you further.
Best regards,
Jung