※ 引述《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