WINDOWS 95 altında bir DOS uygulaması çalıştırdığınızda eğer o programa
ait bir PIF dosyası ya da kısayol yoksa, program penceresi çalıştırıldıktan
sonra kapatılmaz ve ekranda kalır.
Bu durumu önlemek için Windows'un bir API'sini kullanabilir, program
sonlandıktan sonra DOS penceresini ortadan yok edebilirsiniz. Windows 95
ile birlikte gelen USER32.DLL ve KERNEL32.DLL adlı iki dosyayı kullanarak
tanımladığımız üç fonksiyon sadece iki adet parametre ile işi bitiriyor.
Declare Function FindWindow& Lib ' user32' Alias ' FindWindowA'
_ (ByVal lpClassName As String, ByVal lpWindowName As String) Declare Function SendMessage Lib ' user32' Alias ' SendMessageA'
(ByVal hwnd As Long, _ ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Declare Sub Sleep Lib ' kernel32' (ByVal dwMilliseconds As Long) Public Const WM_CLOSE = &H10 Private m_sEXEName As String Private m_sDosCaption As String Public Sub RunDosApp() Dim vReturnValue As Variant Dim lRet As Long Dim i As Integer vReturnValue = Shell(m_sEXEName, 1) ' Dosyayı çalıştır AppActivate vReturnValue ' EXE penceresini aktif hale getir. Do Sleep (10000) lRet = FindWindow(vbNullString, m_sDosCaption) If (lRet <> 0) Then vReturnValue = SendMessage(lRet, WM_CLOSE, &O0, &O0) Exit Do End If Loop End Sub