2013-08-19 64 views
2

外部應用程序,我打開使用下面的代碼ACAD應用:關閉從VB6

殼 「C:\ Program Files文件\歐特克\ AutoCAD的2011 \的acad.exe」

現在我想將其關閉。 請幫忙。

+2

我認爲人們應該在給予特定帖子的負面評論之前寫下原因。我們在這裏得到我們的查詢的解決方案而不是任何失去動力。 – Preeti

+2

http://stackoverflow.com/questions/698156/how-to-close-a-shelled-process-in-vb6 – rags

+0

謝謝rags.Link是有用的。 – Preeti

回答

2

像這樣的東西應該工作:

Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 
Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long 
Private Const WM_QUIT As Long = &H12 
Private Sub Form_Load() 
    Shell "C:\Program Files\Autodesk\AutoCAD 2011\acad.exe", vbNormalFocus 
End Sub 
Private Sub cmdClose_Click() 
    Dim handle As Long 
    handle = FindWindow("AutoCAD", vbNullString) 
    If handle Then 
     PostMessage handle, WM_QUIT, 0&, 0& 
    End If 
End Sub 

注行:

FindWindow("AutoCAD", vbNullString) 

你將不得不改變"AutoCAD"對什麼類的名稱是。您可以使用Spy ++或其他等效程序獲取AutoCAD的確切類名。

可以在這裏找到另一種解決方案,不使用外殼,而是一個API,以保持手柄的軌道(這是遠遠好,但可能更加複雜):

http://www.freevbcode.com/ShowCode.asp?ID=670