| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4963 人关注过本帖
标题:如何调用exe文件后获得返回结果
取消只看楼主 加入收藏
hfq
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-12-26
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
如何调用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
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.017985 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved