Members

Technology Zones

IBM Learning Center

Articles

Hosted By

MaximumASP

Info

Rated
Read 33,834 times

Related Categories

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

James first started writing tutorials on Visual Basic in 1999 whilst starting this website (then known as VB Web). Since then, the site has grown rapidly, and James has written numerous tutorials, articles and reviews on VB, PHP, ASP and C#. In October 2003, James formed the company Developer Fusion Ltd, which owns this website, and also offers various development services. In his spare time, he's a 3rd year undergraduate studying Computer Science in the UK. He's also a Visual Basic MVP.

Comments

  • Existing App Instance

    Posted by Sensei_Paskiet on 27 Jul 2005

    I am OK with the shell command to open and/or close and app fmro within an application that I have created, however, I do have a question....how would you test for the existance of an open application...