我想用VB控制 VB的編輯器,如點擊選單欄檔案,然后在彈出的下拉選單點擊 打開工程


選單欄的句柄我能捉到,模擬滑鼠點擊卻總實作不了。
下面的程式對記事本有效,卻對VB編輯器實作不了,難道getmenu有適用條件?
Option Explicit
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 h1 As Long, h2 As Long, id As Long
h1 = FindWindow(vbNullString, "無標題 - 記事本") '計事本的句柄
Debug.Print h1
h2 = GetMenu(h1)
h2 = GetSubMenu(h2, 0) '檔案"選單的句柄 改變后面的0,就可以
'得到不同選單的句柄
id = GetMenuItemID(h2, 0) '子菜單"新增"的ID
SendMessage h1, WM_COMMAND, id, ByVal 0&
End Sub
搜索更多相
uj5u.com熱心網友回復:
取視窗句柄,取視窗坐標,
移動滑鼠到坐標位置,
模擬按下滑鼠左鍵。
uj5u.com熱心網友回復:
使用http://www.autohotkey.com
或
按鍵精靈
uj5u.com熱心網友回復:
用命令列好了:一、打開工程
"C:\Program Files\Microsoft Visual Studio\VB98\vb6.exe" "D:\VB\Project1.vbp"
二、直接編譯不顯示IDE
"C:\Program Files\Microsoft Visual Studio\VB98\vb6.exe" "D:\VB\Project1.vbp" /make
uj5u.com熱心網友回復:
選單欄按鈕句柄我能捉,但點擊后的下拉選單的句柄捉不了
uj5u.com熱心網友回復:
你那個網址是什么東西,謝謝!
uj5u.com熱心網友回復:
打開的我會,我是要控制
uj5u.com熱心網友回復:
控制做什么用?每次都編一樣的程式有什么意義?
uj5u.com熱心網友回復:
不需要選單句柄,是需要選單的坐標。用API模擬按下滑鼠左鍵。
uj5u.com熱心網友回復:
這種選單每項前面有圖示的,有時已經不是原來意義上的選單了uj5u.com熱心網友回復:
類名:MsoCommandBar,工具條名稱:選單條這個選單是點這個工具列之后出來的,并不是普通方式的選單欄了
uj5u.com熱心網友回復:
一般這個可以用VBA的插件方式去控制,這樣不僅可以添加選單,讀取選單,點擊,等都行吧,也可以用點擊的方式進行處理,可前臺滑鼠點擊,也可以后臺模擬點擊,可以算一下選單總共有幾行,每行高度多少,分隔橫線占用多少,從而算出每個選單行所在縱向相對坐標,進而點擊。還有一種方法可能是MSAA的方式,那個是盲人點整個WINDOWS螢屏都能讀出大部分文字,用的就是這個方法,然后每一個物件一般都有點擊的方法。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/96740.html
標籤:API
上一篇:VB呼叫access資料庫
下一篇:求大神 解答我這是錯在哪了?
