标题:VB 控制其他程序
只看楼主
再下一城
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-10-12
结帖率:0
已结贴  问题点数:20 回复次数:5 
VB 控制其他程序
我想用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
搜索更多相关主题的帖子: 记事本 编辑器 菜单栏 工程 
2015-04-24 22:02
海无边
Rank: 2
等 级:论坛游民
帖 子:15
专家分:72
注 册:2011-9-28
得分:10 
是不是VB已经打开的了,默认为灰色,点击了也没用。
2015-04-25 21:04
再下一城
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-10-12
得分:0 
回复 2楼 海无边
不是的,我已打开一个新的VB
2015-04-26 23:04
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:735
专家分:3478
注 册:2013-1-26
得分:10 
VB开发环境,可以使用VBIDE对象。参见
https://bbs.bccn.net/thread-443796-1-2.html

[ 本帖最后由 lianyicq 于 2015-4-27 09:31 编辑 ]

大开眼界
2015-04-27 08:38
再下一城
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-10-12
得分:0 
回复 4楼 lianyicq
版主,其实我不是要控制VB这个软件,我是要控制另一个别的软件,只是我连VB这个开发软件都控制不了,另一个软件更别想控制了
2015-04-28 22:35
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:735
专家分:3478
注 册:2013-1-26
得分:0 
你想想VB编辑器能显示不同颜色文本,显然不是一般文本框,API可找到的工程1 - Form1 (Code)这个窗体是一个VbaWindow类,另外窗体上的combobox和scrollbar是可以找到的。但编辑窗口是找不到的,具体什么原因一直没有找到。现在的QQ用API也找不到聊天对话窗口。具说是“画”的,原理不清楚。
其它程序相对来说容易操作一些,你以API操作VB的编辑窗口本来练手显然不合适。

大开眼界
2015-04-29 08:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-444466-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.163352 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved