Jump to content

Unsure how to create a GUI as described in post...

Recommended Posts

Hi Guys,

I'm unsure how to create a GUI for how I want/close to how I want it...

Basically, I want an easily accessible GUI window that can minimize to a small box/bar on the side of the screen instead of minimising to taskbar. 

I also want to keep the window on top (using: WinOnTop), but if possible never in focus even when clicked on (if this is possible) because I want it so if I click a button on the autoit window it would mouseclick/type or whatever on the last active window...

Any ideas or examples someone could provide to assist me with this?

Link to post
Share on other sites

Hello Hyflex

Take a look at the function WinMove(). You can move and resize windows with this function.



Also Look at GUIGetMsg(). for customizing the actions of all your window messages.

Also Look at WinGetHandle("[Active]"). It will return the handle to the current window/app in use. Use this to monitor the current active window and use to return to from your custom script.

Edited by Realm

My Contributions: Unix Timestamp: Calculate Unix time, or seconds since Epoch, accounting for your local timezone and daylight savings time. RegEdit Jumper: A Small & Simple interface based on Yashied's Reg Jumper Function, for searching Hives in your registry.  

Link to post
Share on other sites

#include <GUIConstants.au3>

Global Const $SC_MINIMIZE = 0xF020
Global Const $SC_MOVE = 0xF010

Global Const $tagRECT = "struct; long Left;long Top;long Right;long Bottom; endstruct"

Global $aiOldPos[4]
Global $bMinimized = False

Global $hGUI = GUICreate("My GUI", 800, 600, -1, -1, -1, $WS_EX_NOACTIVATE + $WS_EX_TOPMOST)
Global $idButton = GUICtrlCreateButton("Flash Active", 20, 20, 75, 20)



While 1
    Switch GUIGetMsg()
        Case $idButton
            WinFlash(WinGetHandle("[ACTIVE]"), null, 10, 50)

        Case $GUI_EVENT_CLOSE

Func WM_SYSCOMMAND($hWnd, $iMsg, $wParam, $lParam)
    #forceref $iMsg, $lParam

    If ($bMinimized And (BitAND($wParam, 0xFFF0) = $SC_MOVE)) Then Return False

    Switch $wParam
        Case $SC_MINIMIZE
            If (Not $bMinimized) Then
                $aiOldPos = WinGetPos($hWnd)
                WinMove($hWnd, Null, 5, @DesktopHeight / 2 - 300 / 2, 175, 300)
                WinMove($hWnd, Null, $aiOldPos[0], $aiOldPos[1], $aiOldPos[2], $aiOldPos[3])

            $bMinimized = Not $bMinimized

            Return False


Func WM_MOVING($hWnd, $iMsg, $wParam, $lParam)
    #forceref $iMsg, $wParam

    Local $tRECT = DllStructCreate($tagRECT, $lParam)

    WinMove($hWnd, Null, DllStructGetData($tRECT, "Left"), DllStructGetData($tRECT, "Top"))

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
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...