看板 Visual_Basic 關於我們 聯絡資訊
※ 引述《SNG ()》之銘言: : 請問版友 : 該如何控制外部程式 開啟檔案呢? : (不用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 試一下改成 POSTMESSAGE 或者 處理 SENDMESSAGE 傳回的 訊息 : Else : Shell "notepad", vbNormalFocus : End If : End Sub : 目前遇到的問題是有成功呼叫出 開啟舊檔的對話視窗 (CommonDialog) : 但是接下來就卡住了,可以請版友提供一下建議嗎? -- ████ █ ★ ████ █ █ █ █ █ █ █ █ █ 超 級 熱 烈 歡 迎 █ ████ █ █ █ ████ █ █ █ █ █ ███★ █ █ 歡迎到嘉義版! ★███ █ █ █ █ █ █ █ 訊馳電腦-路徑嘉義市林森西路496號(05)2244-526順發斜對面 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.214.220