Jump to content

Prevent MsgBox from gaining focus


AutID
 Share

Recommended Posts

Hello,

It is the second time i am facing this problem in a project and it is starting pissing me off because i can't seem to find a good solution.

By saying a good solution i mean keep using MsgBox and not an alternative GUI and set state to non focus.

I had the same problem with the InputBox. I can't seem to find a solution on google or forum.

Any ideas people?

Thank you in advance.

Link to comment
Share on other sites

How are you writing your MsgBox command?

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to comment
Share on other sites

There are some applications that as soon as they loose focus they stop running, i guess you learned something new ;)

My MsgBox is a simple one. Just wanted to make it without focus

MsgBox(4096, "Test", "This box will time out in 10 seconds",10)
Edit: i was checking MSDN and couldn't find something saying about focus besides setting the focus on the button.

DllCall("user32.dll", "int", "MessageBox", "hwnd", 0, "str", "There are no more lines", "str", "Lines", "int", 0)
Edited by AutID
Link to comment
Share on other sites

The 4096 is the value for $MB_SYSTEMMODAL, so of course it's going to have focus. That's what that value is meant to do

From MSDN:

 

Same as MB_APPLMODAL except that the message box has the WS_EX_TOPMOSTstyle. Use system-modal message boxes to notify the user of serious, potentially damaging errors that require immediate attention (for example, running out of memory). This flag has no effect on the user's ability to interact with windows other than those associated with hWnd.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to comment
Share on other sites

  • Moderators

AutID,

MsgBox is a blocking function so I not at all sure that you can prevent it gaining focus. :(

You can of course create your own MsgBox equivalent and use the SHOWNOACTIVATE state. My ExtMsgBox UDF shows how to create such a dialog and my Toast UDF shows how to display a GUI without taking focus - feel free to plunder both as you wish. Or you might want to look at my Notify UDF which is designed give information without interfering with whatever else is running. :)

Or look for Yashied's NotifyBox UDF - I seem to recall that it does not take focus, but of course you cannot interact with it either. ;)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

The 4096 is the value for $MB_SYSTEMMODAL, so of course it's going to have focus. That's what that value is meant to do

 

From MSDN:

Yes that much i know. It was just a copy paste from the help files. But no values seem to be setting it to non focus msgbox.

I think it is a blocking function so there is no much i can do about it...

Link to comment
Share on other sites

AutID,

MsgBox is a blocking function so I not at all sure that you can prevent it gaining focus. :(

You can of course create your own MsgBox equivalent and use the SHOWNOACTIVATE state. My ExtMsgBox UDF shows how to create such a dialog and my Toast UDF shows how to display a GUI without taking focus - feel free to plunder both as you wish. Or you might want to look at my Notify UDF which is designed give information without interfering with whatever else is running. :)

Or look for Yashied's NotifyBox UDF - I seem to recall that it does not take focus, but of course you cannot interact with it either. ;)

M23

Got me there. But as i said i know alternatives i just wanted to remain to the MsgBox command... :(

Anyway thank you people.

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...