| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4952 人关注过本帖
标题:如何调用exe文件后获得返回结果
只看楼主 加入收藏
hfq
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-12-26
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
如何调用exe文件后获得返回结果
已经编好一个exe文件A(Text1用来输入数据,Text2用来输出数据)。我想编一个测试程序B(Command1是“测试”按钮),点击B中“测试”按钮→调用打开A→将测试数据传给A→A的运行结果返回到B。

我的方法是:
第一步:在B中用ShellExecute函数将数据传到A中
第二步:在B中用FindWindow去找句柄。(这一步失败。情况1:若我在运行B之前就打开了A,那么我运行B后获取的句柄是之前已经打开的A程序的句柄。情况2:若我只打开B程序而没有打开A,则句柄为0,即找不到句柄)

所以我的遇到的问题是,findwindow只能找到之前已经打开的程序的句柄,但我要的是用ShellExecute新打开一个程序,然后找到句柄。
已经想了快一礼拜了。快疯了。求指点,谢谢!!

代码如下:
Private Sub Command4_Click()
Dim m, r, t As Long
Dim a As String * 1024
r = ShellExecute(0, "open", App.Path & "\" & Label1.Caption & ".exe", " 899", "0", 1)
m = FindWindow("ThunderRT6FormDC", "Form1")
End Sub
搜索更多相关主题的帖子: Text1 Text2 如何 
2016-12-26 17:23
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:20 
你这个 R 返回的是什么?

返回值
执行成功会返回应用程序句柄
返回的HINSTANCE可以将它转换为一个整数(%d),并比较它的值大于还是小于32或比较它的错误代码
返回值大于32表示执行成功
返回值小于32表示执行错误
返回值可能的错误有: = 0 {内存不足}
ERROR_FILE_NOT_FOUND = 2; {文件名错误}
ERROR_PATH_NOT_FOUND = 3; {路径名错误}
ERROR_BAD_FORMAT = 11; {EXE 文件无效}
SE_ERR_SHARE = 26; {发生共享错误}
SE_ERR_ASSOCINCOMPLETE = 27; {文件名不完全或无效}
SE_ERR_DDETIMEOUT = 28; {超时}
SE_ERR_DDEFAIL = 29; {DDE 事务失败}
SE_ERR_DDEBUSY = 30; {正在处理其他 DDE 事务而不能完成该 DDE 事务}
SE_ERR_NOASSOC = 31; {没有相关联的应用程序}

授人于鱼,不如授人于渔
早已停用QQ了
2016-12-26 19:13
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
你这个代码有一个问题,window是多进程的os ,你调用外部进程后,window后台正在启动外部进程,而你的代码开始查找进程,这时进程正在启动,怎么能查到?

授人于鱼,不如授人于渔
早已停用QQ了
2016-12-26 19:53
hfq
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-12-26
收藏
得分:0 
回复 2楼 风吹过b
返回值是42
2016-12-27 11:41
hfq
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-12-26
收藏
得分:0 
回复 3楼 风吹过b
谢谢谢谢!真是太感谢了。我让程序等待一段时间再运行就可以了。

Private Declare Function timeGetTime Lib "winmm.dll" () As Long

Dim Savetime As Double
Savetime = timeGetTime ’记下开始时的时间
While timeGetTime < Savetime + 3000  ’循环等待
    DoEvents  ’转让控制权,以便让操作系统处理其它的事件。
Wend
2016-12-27 12:01
快速回复:如何调用exe文件后获得返回结果
数据加载中...
 
   



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

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