Sign in to follow this  
Followers 0
Simmy

Making msgboxes always on top of an ontop form

3 posts in this topic

HI guys hope you are all well.

You kind people have helped me learn how to keep a form on top of all other windows with $WS_EX_TOPMOST

What Id like to be able to do now, is that for any message boxes that come up due to actions in the script, that those message boxes be "on top" of the main form, which has the $WS_EX_TOPMOST set.

Currently, if you select an item from the combo box, the message box is fired, but is hidden by the main form because the main form has the extended style set to $WS_EX_TOPMOST.

Is there a way to say that any windows that pop up as a result of this form, or clicking on something that generates a window such as a msgbox from this form, that those windows be on top, and thus not hidden from view because they are behind the main form?

Here is my code:

#include <Array.au3>
#include <File.au3>
#include <GUIComboBox.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3> ; you need to include this one to use the $WS_EX_TOPMOST style
_Main()


Func _Main()
    Local $hCombo, $iCombo
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;Output the exe list to a text file. Skip the echo is on line, by using skip=1.
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    $listpath = @ScriptDir & '\apps\*.exe'
    RunWait(@ComSpec & ' /c for /f "tokens=* delims=\ skip=1" %a in (''dir /S /B ' & $listpath & ' /A-D'') do @echo %a >> grplist.txt','',@SW_HIDE)

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;Create a form.
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        ;guicreate("title",width,height,left,top,style,exstyle)
        ;GUICreate('Executables', 500, 300)
       ; GUICreate('Executables', 500, 300,,$WS_EX_TOPMOST)
    GUICreate("", 500, 500, -1, -1, -1, $WS_EX_TOPMOST)

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;Create a combo to hold the data.
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

        ;$iCombo = GUICtrlCreateCombo("Select A Folder", 30, 75, 220, 200)
        ;Don't put a title in as this will create an entry in the combo box.
        ;$iCombo = GUICtrlCreateCombo("Select A Folder", 30, 75, 220, 200)
        $iCombo = GUICtrlCreateCombo("", 30, 75, 220, 200)
        $hCombo = GUICtrlGetHandle(-1)


    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;Create a button to press.
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

        $Button1 = GUICtrlCreateButton("Run ", 10, 30, 100)

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;Open the file in order to read it.
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

        $FileOpen = FileOpen('grplist.txt', 0)

        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        ;Add error-handling for file.
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

            If $FileOpen = -1 Then
                MsgBox(0, "Error", "Unable to open file.")
                Exit
            EndIf


    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;Set the data of the combo by looping through the file.
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

        While 1
            $line = FileReadLine($FileOpen)
            If $line = "" Then ExitLoop
            If @error = -1 Then ExitLoop
            GUICtrlSetData($iCombo,$line)
        Wend
;_FileReadToArray

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;Set the default visible entry in the combobox with this function.
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    _GUICtrlComboBox_SetEditText($hCombo, "Select A Folder")

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;Close the file to free resources.
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

        FileClose($FileOpen)

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;Show the form since forms are hidden by default.
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

        GUISetState(@SW_SHOW)

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;Keep the form open until you close it.
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

        ;Do
        ;Until GUIGetMsg() = $GUI_EVENT_CLOSE



        While 1
            $nMsg = GUIGetMsg()
            Switch $nMsg
                Case $GUI_EVENT_CLOSE
                    Exit
            Case $Button1
                $programLocation = GUICtrlRead($iCombo)
                MsgBox(0, "Error", $programLocation)
                ;Run ("Notepad")
                Run ($programLocation)
            EndSwitch
        WEnd




EndFunc   ;==>_Main

Any help greatly appreciated.

Share this post


Link to post
Share on other sites



#include <WindowsConstants.au3>

Global $hGUI

$hGUI = GUICreate("", 500, 500, -1, -1, -1, $WS_EX_TOPMOST)
GUISetState()

MsgBox(0, "Example", "MagBox() on Top.", 0, $hGUI)


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

OR try this little Function >>

_MsgBox_OnTop(0, "Example", "MagBox() on Top.")

Func _MsgBox_OnTop($iFlag, $sTitle, $sText, $iTimeOut = 0, $hHandle = -1)
    If $hHandle = -1 Then
        $hHandle = WinGetHandle(AutoItWinGetTitle())
        WinSetOnTop($hHandle, "", 1)
    EndIf
    Return MsgBox($iFlag, $sTitle, $sText, $iTimeOut, $hHandle)
EndFunc   ;==>_MsgBox_OnTop

_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

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  
Followers 0