永发信息网

vb调用exe返回值的问题

答案:3  悬赏:60  手机版
解决时间 2021-12-19 10:48
  • 提问者网友:星軌
  • 2021-12-19 01:12
lTask = Shell("E:\MATLAB\work\Recognition1.exe", vbNormalFocus)
lHandle = OpenProcess(Synchronize, 0, lTask)
lRet = WaitForSingleObject(lHandle, INFINITE)
lRet = CloseHandle(lHandle)
outbyte = lTask
Text1.Text=outbyte
为什么Text1显示的是一个随机数,Recognition1.exe独立运行返回值是4,到底哪出错了??
最佳答案
  • 五星知识达人网友:酒醒三更
  • 2021-12-19 01:27
你这样获得的是程序的进程ID,每次运行时这个ID都是不同的。并不是程序本身的返回值。
如果你的程序的返回值是标准输出方式(stdout)的,那么可以这样来获得返回值:

ITask = CreateObject("WScript.Shell").exec("E:\MATLAB\work\Recognition1.exe").stdout.readall
Text1.Text = ITask
全部回答
  • 1楼网友:孤老序
  • 2021-12-19 03:08
你的字符串函数写错了,应该是instr s=intstr(str1,str2) 的意思是 查找str1中str2出现的位置并赋值给s 65在98765中出现在第四个字符的位置,所以返回值为4
  • 2楼网友:胯下狙击手
  • 2021-12-19 02:23
这个在运行成功后返回的是随机数,即id值,可以通过该值传递命令到程序中。 运行失败时返回为0。 如果你要知道程序有没有运行,可以遍历程序名。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯