如何在VB中打开其他程序,并执行程序?

liyanchao198 2012-08-24 05:19:21
1,我有一个VS做的小程序:输入关键字进行搜索相关项目
2,还有一个VB6做的程序,一个人力资源管理程序
3,现在我想用VB6做的管理程序去打开vs的搜索程序(用一个按钮单击),并根据vb6中的内容自动搜索相关项目

其中:vs不是我做的,没有源代码,vb6有源代码,请高手们点拨一下,思路+代码最好,没有代码有思路也十分感谢!
...全文
1731 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_18993463 2014-08-06
  • 打赏
  • 举报
回复
你是怎么解决的,跪求
liyanchao198 2013-01-19
  • 打赏
  • 举报
回复
我都忘了结贴了,谢谢各位,问题已解决
dongliudd 2012-09-09
  • 打赏
  • 举报
回复
学习啦,谢谢各位。
lliai 2012-09-05
  • 打赏
  • 举报
回复
用“shell()"
Bluesolos 2012-09-05
  • 打赏
  • 举报
回复
这个应该容易,给你个稳定的办法。
首先隐藏打开此程序,
然后注入程序,搜索窗口按钮句柄,编辑框句柄
通过这两个句柄输入信息及进行控制,
然后通过句柄判断搜索是否完成。
然后显示窗口就可以了,
就是这样,没有什么太好的办法。
sosoben 2012-09-05
  • 打赏
  • 举报
回复
Public Declare Function FindWindowEx Lib "user32" _ 
  Alias "FindWindowExA" _
  (ByVal hWnd1 As Long, _
  ByVal hWnd2 As Long, _
  ByVal lpsz1 As String, _
  ByVal lpsz2 As String) As Long


(1)hwndParent:要查找子窗口的父窗口句柄。
  如果hwndParent为NULL,则函数以桌面窗口为父窗口,查找桌面窗口的所有子窗口。
(2)hwndChildAfter :子窗口句柄。查找从在Z序中的下一个子窗口开始。子窗口必须为hwndParent窗口的直接子窗口而非后代窗口。如果HwndChildAfter为NULL,查找从hwndParent的第一个子窗口开始。如果hwndParent 和 hwndChildAfter同时为NULL,则函数查找所有的顶层窗口及消息窗口。
(3)lpszClass:指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobaIAddAtom函数产生的全局成员。该成员为16位,必须位于lpClassName的低16位,高位必须为0。
(4)lpszWindow:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为 NULL,则为所有窗口全匹配。
  hWnd1 Long,在其中查找子的父窗口。如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找)
  hWnd2 Long,从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索


也就是说,用这个可以查到子窗口,再查子窗口里面的子控件,你可以根据控件类型或名称去查找,有相同名称的话也可以通过顺序查找




lHwnd = FindWindow(vbNullString, titleSTR1)
lChildHwnd = FindWindowEx(lHwnd, 0&, vbNullString, titleSTR2)
lChildHwndY = FindWindowEx(lChildHwnd, 0&, vbNullString, "0")



得到句柄之后就好办了
可以sendmessage了
 For i = 1 To Len(Str)
SendMessage hwnd, WM_IME_CHAR, Asc(Mid(Str, i, 1)), 1
Next

送出你想要的字符


#DeFine WM_LBUTTONDBLCLK 0x203

双击鼠标左键

SendMessage BTNhwnd, WM_LBUTTONDBLCLK


#DeFine WM_LBUTTONDOWN 0x201

按下鼠标左键

#DeFine WM_LBUTTONUP 0x202

释放鼠标左键
c_cyd2008 2012-09-01
  • 打赏
  • 举报
回复
若spy++能看见,EnumChildWindows可枚举子窗口,
liyanchao198 2012-09-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

楼主你只有“结帖率:50.00% ”,尽量多结些帖也好升级啊。另,给人这帖加120分,鼓励大家回答
[/Quote]
。。。俺只发了两个贴了,第一个结了,这个还在进行中,至于分数我看大多都是这个数,我也就随大伙了,以后会增加的
liyanchao198 2012-09-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

楼主你只有“结帖率:50.00% ”,尽量多结些帖也好升级啊。另,给人这帖加120分,鼓励大家回答
[/Quote]
。。。俺只发了两个贴了,第一个结了,这个还在进行中,至于分数我看大多都是这个数,我也就随大伙了,以后会增加的
liyanchao198 2012-09-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

其实不用焦点的。

1)shell出VS程序。
2)取得VS程序的句柄,并通过FindWindowEx获取VS程序中输入框和按钮的句柄(我假设是这样)。
3)通过SendMessage,向VS的文本框输入内容(这个内容就是VB6中定义的了),然后再通过SendMessage按下VS的按键。

其中,shell是可以通过参数控制shell出来的程序获得焦点的。不用API。
[/Quote]



shell出程序自然没问题,但是我用findwindow或findwindowex或其他函数,却只能找出窗口中第一层的控件句柄,内层的找不到,比如窗口内有SysTabControl32,可以找到句柄,但SysTabControl32里还有个类名为#32770的窗口,就找不到了,更别提#32770里的控件了。。。愁死了
舉杯邀明月 2012-08-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

其实不用焦点的。

1)shell出VS程序。
2)取得VS程序的句柄,并通过FindWindowEx获取VS程序中输入框和按钮的句柄(我假设是这样)。
3)通过SendMessage,向VS的文本框输入内容(这个内容就是VB6中定义的了),然后再通过SendMessage按下VS的按键。

其中,shell是可以通过参数控制shell出来的程序获得焦点的。不用API。
[/Quote]

Ding
赵4老师 2012-08-30
  • 打赏
  • 举报
回复
bcrun 2012-08-29
  • 打赏
  • 举报
回复
楼主你只有“结帖率:50.00% ”,尽量多结些帖也好升级啊。另,给人这帖加120分,鼓励大家回答
asianh 2012-08-29
  • 打赏
  • 举报
回复
其实不用焦点的。

1)shell出VS程序。
2)取得VS程序的句柄,并通过FindWindowEx获取VS程序中输入框和按钮的句柄(我假设是这样)。
3)通过SendMessage,向VS的文本框输入内容(这个内容就是VB6中定义的了),然后再通过SendMessage按下VS的按键。

其中,shell是可以通过参数控制shell出来的程序获得焦点的。不用API。
liyanchao198 2012-08-25
  • 打赏
  • 举报
回复
一提到API我就菜鸟了,使窗口获得焦点是不是这个函数?
SetWindowFocus Lib "user32" Alias "SetFocus" (ByVal hWnd As Long) As Long
那为什么不用postmessgae?不用焦点额
aspdotnet50 2012-08-25
  • 打赏
  • 举报
回复
1、shell打开
2、用api保证打开的窗口取得蕉点
3、sendkey,对窗口发送相关的键信息
liyanchao198 2012-08-25
  • 打赏
  • 举报
回复
用spy++是不是可以获得任意窗口的句柄和类名?
liyanchao198 2012-08-25
  • 打赏
  • 举报
回复
多谢KingOfPorcupine的提示,shellex是不是就是shell?vs小程序中的搜索框、搜索按钮句柄如何获得呢?
我先百度下
KingOfPorcupine 2012-08-24
  • 打赏
  • 举报
回复
shellex 函数可以打开其他应用程序 并指定打开后窗口的状态
postmessage函数可以 向指定的(必须有句柄) 程序 或者程序上的控件发送消息 (单击 双击 字母 扩展键 = 文字信息可以用setkey(好像是这个吧))这些资料你去百度上搜 一大堆
KingOfPorcupine 2012-08-24
  • 打赏
  • 举报
回复
shellex 函数可以打开其他应用程序 并指定打开后窗口的状态
postmessage函数可以 向指定的(必须有句柄) 程序 或者程序上的控件发送消息 (单击 双击 字母 扩展键 = 文字信息可以用setkey(好像是这个吧))这些资料你去百度上搜 一大堆
◆ 01.htm 1、怎么用mscomm控件检测modem是否与计算机联接正确?2、如何用mscomm挂断modem与别的电话机间的连接?(已接通) ◆ 02.htm CWinInetConnection---一个封装了WinInet API函数的类 ◆ 03.htm MODEM通讯意外处理 ◆ 04.htm MsComm 文字传输 ◆ 05.htm PING一个IP地址(向它发送一个数据包并等待回应) ◆ 06.htm SMTP协议简介 (Simple Mail Transfer Protocol) ◆ 07.htm VB5.0 远程数据库的访问 ◆ 08.htm VB下如何编写CRC校验程序 ◆ 09.htm VBWinsock控制的UDP协议的使用 ◆ 10.htm Visual Basic 6发送邮件的新方法 ◆ 11.htm Visual Basic通信程序设计 ◆ 12.htm Whois 示例程序 ◆ 13.htm Winsock Terminal示例程序 ◆ 14.htm WinSock断开导致客户端问题 ◆ 15.htm 把Outlook信箱的附件另存为 ◆ 16.htm 保证连网计算机时间同步 ◆ 17.htm 编写网络寻呼机 ◆ 18.htm 编制自已的电话录音小程序 ◆ 19.htm 程序如何启动默认的拨号连接 ◆ 20.htm 程序如何启动默认的拨号连接? ◆ 21.htm 打开器并进入指定网址 ◆ 22.htm 打开一个直接到自己主页的器 ◆ 23.htm 得到用户的IP地址 ◆ 24.htm 电话拨号 ◆ 25.htm 电子邮件的标准格式 (RFC 822) ◆ 26.htm 断开拨号网络的连接 ◆ 27.htm 断开与 Internet 的连接 ◆ 28.htm 发送电子邮件附件 ◆ 29.htm 发送电子邮件附件1 ◆ 30.htm 发送电子邮件附件2 ◆ 31.htm 发送电子邮件附件3 ◆ 32.htm 发送电子邮件附件4 ◆ 33.htm 获得用户网络登录名 ◆ 34.htm 基 于Win95 的VB5 串 口 通 信 程 序 ◆ 35.htm 基于Win95的VB5串口通信程序 ◆ 36.htm 几个设置IE的API ◆ 37.htm 检测运程数据传送的断线 ◆ 38.htm 简单的聊天程序 ◆ 39.htm 简单电子邮件发送程序 ◆ 40.htm 建立拨号联接 ◆ 41.htm 将所有窗口最小化 ◆ 42.htm 利用IE控件访问Internet ◆ 43.htm 利用IE控件设计简易器 ◆ 44.htm 利用Mscomm32控件判断MODEM是否打开,或者正在工作,并且判断拨号时是否遇忙音 ◆ 45.htm 利用TAPI进行电话拨号 ◆ 46.htm 利用VB访问Internet ◆ 47.htm 利用VB设计聊天室 ◆ 48.htm 利用Visual Basic实现无线通讯 ◆ 49.htm 利用Winsock控件实现局域网通信 ◆ 50.htm 强制一个本地或远程NT系统关闭 ◆ 51.htm 取得网卡序列号 ◆ 52.htm 如何从 Internet 上取回某一个网页的內容? ◆ 53.htm 如何检测是否已连接到Internet? ◆ 54.htm 如何利用Winsock控件编写自己的Internet程序 ◆ 55.htm 如何每天抓取 Internet 上某一个网页的图片来更换桌面的壁纸? ◆ 56.htm 如何启动拨号网路的连线? ◆ 57.htm 如何使用MSCOMM32.OCX发送大于80H的字符,可否给个示例程序 ◆ 58.htm 如何通过VB获取网卡地址 ◆ 59.htm 如何用VB打开默认器或默认发信程序? ◆ 60.htm 如何用Visual Basic编写小型的网络系统 ◆ 61.htm 如何在程序启动 NT 的【拨号连接】对话框 ◆ 62.htm 如何在程序启动 NT 的【拨号连接】对话框? ◆ 63.htm 如何在网页上使用 VB5 制作的 ActiveX 控件? ◆ 64.htm 如何断【拨号网络连接】 ◆ 65.htm 设计Browser及FTP程序 ◆ 66.htm 设计Chat程序 ◆ 67.htm 设计E-mail程序 ◆ 68.htm 设置计算机名称 ◆ 69.htm 使用VB获得一页的HTML代码 ◆ 70.htm 使用VB收发电子邮件 ◆ 71.htm 使用标签控件调出器 ◆ 72.htm 使用超链接和发送Email ◆ 73.htm 使用器的文件复制对话框 ◆ 74.htm 输入/输出篇 ◆ 75.htm 通过WnetEnumResource函数获得网络资源 ◆ 76.htm 通往 Internet 的捷径 ◆ 77.htm 显示计算机的名称 ◆ 78.htm 用 MAPI 控件实现发送邮件 ◆ 79.htm 用 WinSock 控件下载文件 ◆ 80.htm 用 Winsock 实现聊天的程序 ◆ 81.htm 用Internet Transfer编写FTP程序 ◆ 82.htm 用Sockets发送电子邮件 ◆ 83.htm 用VB 创 建 自 己 的 通 信 程 序 ◆ 84.htm 用VB5.0开发通信软件的技巧 ◆ 85.htm 用VB5开发IE ◆ 86.htm 用VB编写网络寻呼 ◆ 87.htm 用VB编写小型的网络系统 ◆ 88.htm 用VB创建自己的通信程序 ◆ 89.htm 用VB构建Internet的应用[微软提供] ◆ 90.htm 用VB开发标准CGI程序 ◆ 91.htm 用VB实现客户——服务器(TCP IP)编程实例 ◆ 92.htm 用VB实现客户服务器(TCP、IP)编程实例 ◆ 93.htm 用VB实现聊天讨论室和点对点会话 ◆ 94.htm 用VB写一个定时PING某IP的程序 ◆ 95.htm 用VB制作器 ◆ 96.htm 用Visual Basic 5.0设计E-mail程序(MAPI) ◆ 97.htm 用Visual Basic6.0编写客户服务器程序 ◆ 98.htm 用Visual Basic创建FTP组件 ◆ 99.htm 用Visual Basic开发数据库器 ◆ 100.htm 用Visual Basic轻松地设计Browser及Ftp程序 ◆ 101.htm 用Winsock控件发信Email ◆ 102.htm 用Winsock控件实现文件的下载 ◆ 103.htm 用Winsock实现点对点通信 ◆ 104.htm 邮件检查程序(二) ◆ 105.htm 邮件检查程序(一) ◆ 106.htm 在VB程序怎样挂断拨号网络 ◆ 107.htm 在VB操纵OLE服务器应用程序 ◆ 108.htm 在VB利用UDP协议编写聊天程序 ◆ 109.htm 在VB模拟实现邮件传输 ◆ 110.htm 在VB如何得到网络某一台电脑(电脑名)的网卡地质? (自己的) ◆ 111.htm 在VB实现文件上传 ◆ 112.htm 在VB实现文件上载 ◆ 113.htm 在VB使用UDP协议 ◆ 114.htm 在VB用Outlook发电子邮件 ◆ 115.htm 在WindowsNT网络广播消息 ◆ 116.htm 在程序打开 Internet 拨号连接窗口 ◆ 117.htm 在一个单位内部或通过广域协议(如X.25)互联的行业内部都有几十或上万台计算机互联,用Intranet虽然可以建立聊天室,但实现点对点实时对话却比较困难。本人用Winsock和VB自制了一套聊天室和对话系统,特拿来供同行们参考。 ◆ 118.htm 在应用集成器 ◆ 119.htm 在桌面上建立一个 Internet 快捷键 ◆ 120.htm 怎样接收电子邮件(POP3协议简介) ◆ 121.htm 怎样用VB得知系统当前是否处于internet链结状态 ◆ 122.htm 制作自己的网络搜索软件 ◆ 123.htm 自动更新工作站的应用程序 ◆ 124.htm 自己的IE——用VB制作器 ◆ 125.htm HTTP协议(学习笔记) ◆ 126.htm HTTP协议四--关于Chunked编码 ◆ 127.htm IE器完全控制 ◆ 128.htm OICQ服务器系统通讯协议 ◆ 129.htm POP3协议的基本命令 ◆ 130.htm RAS API上的其他Function ◆ 131.htm VB + API 获取 IE 的 “代理服务器” 配制 ◆ 132.htm vb调用winInet API接口post数据到指定的url ◆ 133.htm vb开发通信软件 ◆ 134.htm vb设计数据库电子邮件程序(1) ◆ 135.htm vb设计数据库电子邮件程序(2) ◆ 136.htm vb设计数据库电子邮件程序(3) ◆ 137.htm vb设计数据库电子邮件程序(4) ◆ 138.htm vb设计数据库电子邮件程序(5) ◆ 139.htm vb设计数据库电子邮件程序(6) ◆ 140.htm VB实现应用程序在局域网上自动更新 ◆ 141.htm VB邮件检查程序 ◆ 142.htm vb从域名得到IP及从IP得到域名 ◆ 143.htm VB检测是否连网 ◆ 144.htm WebClass实现动态WEB编程之理论篇 ◆ 145.htm Winsocket网络编程谈 ◆ 146.htm Winsock编程框架 ◆ 147.htm Winsock错误代码一览表 ◆ 148.htm 程式自动呼叫拨号网络(RAS API) ◆ 149.htm 打开一个超连接 ◆ 150.htm 得到登入windows 的人的id ◆ 151.htm 访问Internet并调用Explorer ◆ 152.htm 非同步文件下载类 ◆ 153.htm 给Outlook的所有用户发送信件 ◆ 154.htm 获得网卡的MAC地址 ◆ 155.htm 基于WinSock的小型网络管理系统及其实现 ◆ 156.htm 检测是否连接到Internet ◆ 157.htm 检测网络是否连通 ◆ 158.htm 建立Web的超链接树形图 ◆ 159.htm 建立你自己的器-Properties ◆ 160.htm 建立你自己的器-查看源文件 ◆ 161.htm 建立你自己的器-打印 ◆ 162.htm 建立你自己的器-打印设置 ◆ 163.htm 建立你自己的器-发送到FontPage ◆ 164.htm 建立你自己的器-发送到Visual Interdev ◆ 165.htm 建立你自己的器-发送到软盘 ◆ 166.htm 建立你自己的器-复制 ◆ 167.htm 建立你自己的器-另存为 ◆ 168.htm 建立你自己的器-全选 ◆ 169.htm 建立你自己的器-页面设置 ◆ 170.htm 开发通信软件的技术与技巧 ◆ 171.htm 开发网络应用的5个技巧 ◆ 172.htm 利用RAS调用在VB6.0实现拨号上网 ◆ 173.htm 利用VB提取HTML文件的EMAIL地址 ◆ 174.htm 枚举出局域网上所有网络资源 ◆ 175.htm 面向Internet的开发工具 ◆ 176.htm 你也可以YAI--VB5Winsock控件的使用 ◆ 177.htm 判断一个文件是否在IE的缓存 ◆ 178.htm 启动拨号网络的连接 ◆ 179.htm 浅谈HTTP协议(二)--返回值 ◆ 180.htm 浅谈HTTP协议(一)--结构 ◆ 181.htm 如何利用 WebBrowser 控件显示 .GIF 动画? ◆ 182.htm 如何映射(断网络磁盘) ◆ 183.htm 设计E-mail的接收部分 ◆ 184.htm 设置器默认网址 ◆ 185.htm 实现端口对端口的聊天 ◆ 186.htm 使用ASP建立Http组件 ◆ 187.htm 使用VB编写纯ASP程序 ◆ 188.htm 使用vb获取网上邻居里的计算机名 ◆ 189.htm 使用VB建立Web Server ◆ 190.htm 使用Visual Basic开发通讯软件 ◆ 191.htm 使用资源工具包执行本地和远程重新启动 ◆ 192.htm 谈谈远程控制关于搜索、控制计算机的功能 ◆ 193.htm 压缩 Html ◆ 194.htm 用ASP、VB和XML建立互联网应用程序(1) ◆ 195.htm 用ASP、VB和XML建立互联网应用程序(2) ◆ 196.htm 用ASP、VB和XML建立互联网应用程序(3) ◆ 197.htm 用ASP、VB和XML建立互联网应用程序(4) ◆ 198.htm 用COMMUNICATION控件进行数据采集(学习笔记) ◆ 199.htm 用OLE自动化Outlook ◆ 200.htm ActiveX控件用于DHTML开发 ◆ 201.htm 用VB编写ActiveX DLL实现ASP编程 ◆ 202.htm 用VB编写Windows CGI应用程序 ◆ 203.htm 用VB编写标准CGI程序(上) ◆ 204.htm 用VB编写标准CGI程序(下) ◆ 205.htm 用VB编写收发电子邮件程序 ◆ 206.htm 用VB编写网络监控软件 ◆ 207.htm 用VB编写异步多线程下载程序 ◆ 208.htm 用VB导入导出IE器收藏夹 ◆ 209.htm 用VB定制合路器 ◆ 210.htm 用VB和XML建立集式应用程序 ◆ 211.htm 用VB将Html转换为文本文件 ◆ 212.htm 用VB开发分布式应用 ◆ 213.htm 用VB设计基于代理服务器的网络计费系统 ◆ 214.htm 用VB制作文件下载程序 ◆ 215.htm 用Visual Basic 实现无线通讯 ◆ 216.htm 用Winsock制作一套聊天室和对话系统 ◆ 217.htm 远程共享显示及声音的实现 ◆ 218.htm 远程启动机器ABC API解决方案 ◆ 219.htm 远程启动机器ABC WMI解决方案 ◆ 220.htm 在VB5利用Winsock和msDNS控件进行 ◆ 221.htm 找出计算机上当前登录入网的用户 ◆ 222.htm 用VB5 Winsock控件创建TCP(IP)客户机 服务器程序

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧