فهمیدم مشکل کجاست
برای بستن پنجره های با هندل system32 و WINDOWS باید از دستورات زیر استفاده کرد :
کد:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_CLOSE = &H10
Private Sub Timer1_Timer()
Dim CloseIt As Long
CloseIt = FindWindow(vbNullString, "system32")
PostMessage CloseIt, WM_CLOSE, CLng(0), CLng(0)
End Sub
حالا اون دستوراتی که پنجره های با هندل system32 و WINDOWS رو نمیبستن اینه،
اما برای فرم های دیگه با هندل متفاوت کار میکنند :
کد:
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Sub Timer1_Timer()
Dim run As Long
Const WM_CLOSE = &H10
run = FindWindow(vbNullString, "Run")
If run <> 0 Then SendMessage run, WM_CLOSE, 0&, 0&
End Sub
میبینید که از باز شدن پنجره ی با هندل Run جلوگیری میکنه،
---
خوب حالا اگه کسی بتونه فرق این دو کد رو به ما بگه ممنون میشم.