DOS PENCERESİ KAPANSIN
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