[VB6 ] 控制外部程式開啟檔案的方法?

看板Programming作者時間15年前 (2010/01/30 16:34), 編輯推噓1(104)
留言5則, 1人參與, 最新討論串1/3 (看更多)
※ [本文轉錄自 Visual_Basic 看板] 作者: SNG () 看板: Visual_Basic 標題: [VB6 ] 控制外部程式開啟檔案的方法? 時間: Sat Jan 30 15:43:08 2010 請問版友 該如何控制外部程式 開啟檔案呢? (不用shell加參數) 例如以 Notepad 為例子 Private Declare Function GetMenu Lib "user32.dll" (ByVal hWnd As Long) As Long Private Declare Function SendMessage Lib "user32.dll" Alias _ "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetMenuItemID Lib "user32.dll" (ByVal hMenu As Long, ByVal nPos As Long) As Long Private Declare Function GetSubMenu Lib "user32.dll" (ByVal hMenu As Long, ByVal nPos As Long) As Long Private Const WM_COMMAND As Long = &H111 Private Sub Command1_Click() Dim hWnd As Long, hMenu As Long, MenuID As Long hWnd = FindWindow(vbNullString, "未命名 - 記事本") If hWnd <> 0 Then hMenu = GetMenu(hWnd) hMenu = GetSubMenu(hMenu, 0) MenuID = GetMenuItemID(hMenu, 1) SendMessage hWnd, WM_COMMAND, MenuID, ByVal 0 Else Shell "notepad", vbNormalFocus End If End Sub 目前遇到的問題是有成功呼叫出 開啟舊檔的對話視窗 (CommonDialog) 但是接下來就卡住了,可以請版友提供一下建議嗎? -- ★小天使 在平行的世界中,兩顆心跳是最遠的距離。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.122.248.195 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.122.248.195

01/31 20:15, , 1F
這問題... 一般是直接把要開的檔名當
01/31 20:15, 1F

01/31 20:15, , 2F
參數的吧... 其他的editor有的支援DDE
01/31 20:15, 2F

01/31 20:16, , 3F
有的可以經COM+開啟(例如MS Word)
01/31 20:16, 3F

01/31 20:18, , 4F
你這方法不準確啊...... (別人用英文
01/31 20:18, 4F

01/31 20:18, , 5F
Windows你就找不到了...)
01/31 20:18, 5F
文章代碼(AID): #1BO-x_U0 (Programming)
文章代碼(AID): #1BO-x_U0 (Programming)