Hanau Posted April 10, 2013 Share Posted April 10, 2013 Hi everyone, I created a GUI and I want it to be system modal. I don't know if it is the right term for the wanted modal mode but the desired behavior is that the user cannot do anything until the GUI is closed. The program is a bit complex so I don't want to change the fact I'm using a GUI. Is there any way to accomplish this? For example, using a transparent system modal msgbox as a child process of the GUI or something like this (I don't know if this is possible), etc. Thanks Link to comment Share on other sites More sharing options...
FireFox Posted April 10, 2013 Share Posted April 10, 2013 Hi,Welcome to the autoit forum the user cannot do anything until the GUI is closed.Can you explain a little bit? Link to comment Share on other sites More sharing options...
Hanau Posted April 10, 2013 Author Share Posted April 10, 2013 (edited) Hi,Welcome to the autoit forum Can you explain a little bit?When I create my GUI I use the extended style $WS_EX_TOPMOST. What I would like to achieve with my GUI is that the user is not able to work, for example in MS Word or any program "behind" this GUI, as long as the GUI is not closed. As it is now, the user is able to continue working normally even with the GUI in the center of the screen, which I don't want.Is this something that can be achieved with a GUI?Thanks! Edited April 10, 2013 by Hanau Link to comment Share on other sites More sharing options...
FireFox Posted April 10, 2013 Share Posted April 10, 2013 There is some "desktop lock" examples on this forum, you can get some ideas from them. Functions: _MouseTrap and/or WM_ACTIVATE with WinActivate. Br, FireFox. Link to comment Share on other sites More sharing options...
FireFox Posted April 10, 2013 Share Posted April 10, 2013 Forget the WM_ACTIVATE message it does not work well. #include <WindowsConstants.au3> #include <GUIConstantsEx.au3> #include <Misc.au3> Local $hGUI = GUICreate("MyGUI", 400, 400, -1, -1, -1, $WS_EX_TOPMOST) GUISetState(@SW_SHOW, $hGUI) _TraptoGUI() While GUIGetMsg() <> $GUI_EVENT_CLOSE If WinActive($hGUI) = 0 Then WinActivate($hGUI) _TraptoGUI() EndIf Sleep(10) WEnd Func _TraptoGUI() Local $aWgp = WinGetPos($hGUI) _MouseTrap($aWgp[0], $aWgp[1], $aWgp[0] + $aWgp[2], $aWgp[1] + $aWgp[3]) EndFunc ;==>_TraptoGUI Better approach. Link to comment Share on other sites More sharing options...
Hanau Posted April 10, 2013 Author Share Posted April 10, 2013 Thanks so much! That did the trick! Link to comment Share on other sites More sharing options...
FireFox Posted April 10, 2013 Share Posted April 10, 2013 (edited) You're welcome Edit: yes, I agree with the next post. Edited April 10, 2013 by FireFox Link to comment Share on other sites More sharing options...
guinness Posted April 10, 2013 Share Posted April 10, 2013 Hanau, FireFox will agree with me, that it's always best to show what you've i.e. post example code. Thanks. UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _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 parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now