Start and Close an application

The code below shows you how to start an application (in this case, notepad) using the Shell statement, and then close it again by sending it the WM_CLOSE message. Please note that not all applications pay an attention to this message! You will have to try it first.

Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_CLOSE = &H10
Private lNotepadhWnd As Long
Private Sub cmdStartNotepad_Click()
    Call Shell("notepad", vbNormalFocus)
    DoEvents
    lNotepadhWnd = GetForegroundWindow
End Sub

Private Sub cmdCloseNotepad_Click()
    Call SendMessage(lNotepadhWnd, WM_CLOSE, 0, 0)
End Sub

You might also like...

Comments

James Crowley James first started this website when learning Visual Basic back in 1999 whilst studying his GCSEs. The site grew steadily over the years while being run as a hobby - to a regular monthly audience ...

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“My definition of an expert in any field is a person who knows enough about what's really going on to be scared.” - P. J. Plauger