Jump to content
Sign in to follow this  
Mingre

How do I make a GUI "un-minimizable"?

Recommended Posts

Mingre

I'd searched the forum with the strings "unminimizable", "cannot minimize", "gui not minimize" (plus lots of other combinations) but the only relevant thread I found was this:

The last post might have helped the thread starter but unfortunately I don't have any idea how to do what s/he'd instructed:

"You could make a window which has no $WS_SYSMENU and I think that will not minimize for Windows + D." (The thread started hadn't replied either.)

SO is there a way to disable the minimizing of a GUI even when Windows + D is pressed?

Thank you!

Share this post


Link to post
Share on other sites
JohnOne

Make it without a minimize button.

I didn't need to look fat in search to find that.

I just added $WS_EX_TOPMOST so it remains when desktop is brought to front.

#include <WinAPIEx.au3> ; www.autoitscript.com/forum/topic/98712-winapiex-udf/
_GUI_NoIcon()
GUICtrlCreateLabel("Example Label", 10, 10, 150, 25)
GUISetState(@SW_SHOW)
While 1
    If GUIGetMsg("Test GUI") = -3 Then
        Exit
    EndIf
WEnd
Func _GUI_NoIcon($sTitle = "", $iWidth = -1, $iHeight = -1, $iXpos = -1, $iYpos = -1)
    Local $hWnd = GUICreate($sTitle, $iWidth, $iHeight, $iXpos, $iYpos, _
            BitOR($WS_CAPTION, $WS_SYSMENU), BitOR($WS_EX_DLGMODALFRAME,$WS_EX_TOPMOST))
    Local $hIcon = _WinAPI_GetClassLongEx($hWnd, $GCL_HICON)
    _WinAPI_DestroyIcon($hIcon)
    _WinAPI_SetClassLongEx($hWnd, $GCL_HICON, 0)
    _WinAPI_SetClassLongEx($hWnd, $GCL_HICONSM, 0)
    Return $hWnd
EndFunc   ;==>_GUI_NoIcon
  • Like 1

AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Share this post


Link to post
Share on other sites
Mingre

Hello John. For some reasons, I can't execute your example. I've already downloaded the UDF. Here's the error log:

C:UsersadminDesktopWinAPIEx_3.5Folders_2.au3(12,30) : WARNING: $WS_CAPTION: possibly used before declaration.

BitOR($WS_CAPTION,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

C:UsersadminDesktopWinAPIEx_3.5Folders_2.au3(12,43) : WARNING: $WS_SYSMENU: possibly used before declaration.

BitOR($WS_CAPTION, $WS_SYSMENU)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

C:UsersadminDesktopWinAPIEx_3.5Folders_2.au3(12,72) : WARNING: $WS_EX_DLGMODALFRAME: possibly used before declaration.

BitOR($WS_CAPTION, $WS_SYSMENU), BitOR($WS_EX_DLGMODALFRAME,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

C:UsersadminDesktopWinAPIEx_3.5Folders_2.au3(12,87) : WARNING: $WS_EX_TOPMOST: possibly used before declaration.

BitOR($WS_CAPTION, $WS_SYSMENU), BitOR($WS_EX_DLGMODALFRAME,$WS_EX_TOPMOST)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

C:UsersadminDesktopWinAPIEx_3.5Folders_2.au3(13,60) : WARNING: $GCL_HICON: possibly used before declaration.

Local $hIcon = _WinAPI_GetClassLongEx($hWnd, $GCL_HICON)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

C:UsersadminDesktopWinAPIEx_3.5Folders_2.au3(16,47) : WARNING: $GCL_HICONSM: possibly used before declaration.

_WinAPI_SetClassLongEx($hWnd, $GCL_HICONSM,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

C:UsersadminDesktopWinAPIEx_3.5Folders_2.au3(12,30) : ERROR: $WS_CAPTION: undeclared global variable.

BitOR($WS_CAPTION,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

C:UsersadminDesktopWinAPIEx_3.5Folders_2.au3 - 1 error(s), 6 warning(s)

Edited by Lilbert

Share this post


Link to post
Share on other sites
Mingre

Hello again John. I tried your suggestion to use $WS_EX_TOPMOST; it worked---windows + D won't minimize it.

Problem now is, I don't want the GUI to be always on top of the other windows.

Thanks for the quick reply BTW.

Edited by Lilbert

Share this post


Link to post
Share on other sites
czardas

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>


$styles = BitOR($WS_CAPTION, $WS_POPUP, $WS_SYSMENU )
$hGui = GUICreate("Test", 170, 100, Default, Default, $styles)
GUISetState()

While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd

Oops I didn't see the Win+d part.You could restore the window automatically after pressing Win+d. Look at WinGetState and WinSetState.

Edited by czardas

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.