PDA

View Full Version : Solved: Self Closing Message Box



omnibuster
03-19-2010, 12:04 PM
HI.
In Win XP, OFFICE-2003 I have issue while trying to get to work.
http://cuinl.tripod.com/Tips/messagboxclsing.htm


Public Const NV_CLOSEMSGBOX As Long = &H5000&
Public Declare Function SetTimer& Lib "user32" (ByVal hWnd&, ByVal nIDEvent&, _
ByVal uElapse&, ByVal lpTimerFunc&)
Public Declare Function FindWindow& Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName$, ByVal lpWindowName$)
Public Declare Function LockWindowUpdate& Lib "user32" (ByVal hwndLock&)
Public Declare Function SetForegroundWindow& Lib "user32" (ByVal hWnd&)
Public Declare Function MessageBox& Lib "user32" Alias "MessageBoxA" _
(ByVal hWnd&, ByVal lpText$, ByVal lpCaption$, ByVal wType&)
Public Declare Function KillTimer& Lib "user32" (ByVal hWnd&, ByVal nIDEvent&)
Public Const API_FALSE As Long = 0&
Public Sub TimerProc(ByVal hWnd&, ByVal uMsg&, ByVal idEvent&, ByVal dwTime&)
KillTimer hWnd, idEvent
Dim hMessageBox&
'Replace 'Self Closing Message Box' with the title you gave to your message box.
hMessageBox = FindWindow("#32770", "Self Closing Message Box")
If hMessageBox Then
Call SetForegroundWindow(hMessageBox)
SendKeys "{enter}"
End If
Call LockWindowUpdate(API_FALSE)
End Sub

'Insert this code to your form:
Private Sub Form_Load()
'Replace the '4000' below with the number of milliseconds the message box
'will appear. 1000 milliseconds = 1 second
SetTimer hWnd, NV_CLOSEMSGBOX, 4000&, AddressOf TimerProc
Call MessageBox(hWnd, "Watch this message box close itself after four seconds", _
"Self Closing Message Box", MB_ICONQUESTION Or MB_TASKMODAL)
End Sub

lucas
03-19-2010, 12:20 PM
is there some reason that this has to be a msgbox?

It's so easy with a userform.

omnibuster
03-19-2010, 12:55 PM
My project works like this:
1.When process start Excel application set=0 (Hide).
User interference = 0
2.Userform shows vb modeless.
3.Before download (IE) process user select different items in opened Webpage dropdown.
2.MsgBox (or Windows Taskbar Button - new excel icon???) should say process status or tell for user what to do.

Sry my still bad english.

lucas
03-19-2010, 12:59 PM
Why does it have to be a msgbox?

omnibuster
03-19-2010, 01:44 PM
Of course not necessariliy MsgBox.
I was truing to use FlashWindow for send message to Application Caption in Taskbar, but not successfully.
http://support.microsoft.com/kb/254339

If Wbk hidden then how send message in taskbar like in attachment?
Or should I make temporarly new file and use it Taskbar Caption?

SamT
03-20-2010, 07:33 AM
http://www.vbaexpress.com/kb/getarticle.php?kb_id=411

http://www.vbaexpress.com/kb/getarticle.php?kb_id=967

http://www.vbaexpress.com/kb/getarticle.php?kb_id=993

omnibuster
03-21-2010, 02:10 AM
Thanks all.
I was think that way:

mdmackillop
03-21-2010, 03:29 AM
Very neat. A couple of minor comments.

Hide seems unneeded if the form is unloaded

Unload UF2
UF2.Hide

You could Toggle Excel visible if desirable

Private Sub CommandButton2_Click()
Application.Visible = Not Application.Visible
End Sub


Initialise rather than Activate - no need to repaint
Public Sub UserForm_initialize()
With UF2
'etc.

omnibuster
03-21-2010, 04:40 AM
Thanks mdmackillop.