作者SNG ()
看板Programming
标题[VB6 ] 控制外部程式开启档案的方法?
时间Sat Jan 30 16:34:06 2010
※ [本文转录自 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
1F:推 leicheong:这问题... 一般是直接把要开的档名当 61.92.89.78 01/31 20:15
2F:→ leicheong:参数的吧... 其他的editor有的支援DDE 61.92.89.78 01/31 20:15
3F:→ leicheong:有的可以经COM+开启(例如MS Word) 61.92.89.78 01/31 20:16
4F:→ leicheong:你这方法不准确啊...... (别人用英文 61.92.89.78 01/31 20:18
5F:→ leicheong:Windows你就找不到了...) 61.92.89.78 01/31 20:18