C++调用VBS问题

Lion1946 2013-10-28 08:09:03
起因是这样的,要在C++中调用当前文件夹下的一个批处理文件,但是又不想在调用时弹出DOS窗口,看网上说可以使用VBS调用批处理文件,然后在C++代码中调用这个VBS,于是按照这种方式搞了,但现在好像调用不起来,对VBS不是很熟,感觉应该是路径的问题,单独执行VBS文件可以调用批处理文件,但是在C++中调用VBS就无法完成,请各位高手帮忙看下,不胜感激!
注:
VBS文件,批处理文件均放在C++Debug文件夹内
批处理文件:Config.bat
VBS文件:TestConnect.vbs
VBS内容:
DIM objShell
set objShell=wscript.createObject("wscript.shell")
path = createobject("Scripting.FileSystemObject").GetFile(Wscript.ScriptFullName).ParentFolder.Path
cmd = path\"Config.bat"
iReturn=objShell.Run("cmd.exe /C cmd", 0, TRUE)
C++调用内容:
CString strbuff;
GetModuleFileName(NULL, strbuff.GetBuffer(_MAX_PATH), _MAX_PATH);
strbuff.ReleaseBuffer();
int npos = strbuff.ReverseFind('\\');
CString strlocation = strbuff.Left(npos);
CString strfulllocation = strlocation + strScriptName;
ShellExecute(NULL, _T("open"), strfulllocation, NULL, NULL, SW_SHOWNORMAL);
...全文
254 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-10-28
  • 打赏
  • 举报
回复
不要做A语言代码修改为B语言代码的无用功。 也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。 只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。 即可很方便地让A、B两种语言之间协调工作。
赵4老师 2013-10-28
  • 打赏
  • 举报
回复
共享临时文本文件这种进程之间的通讯方法相比其它方法的优点有很多,下面仅列出我现在能想到的: ·进程之间松耦合 ·进程可在同一台机器上,也可跨机,跨操作系统,跨硬件平台,甚至跨国。 ·方便调试和监视,只需让第三方或人工查看该临时文本文件即可。 ·方便在线开关服务,只需删除或创建该临时文本文件即可。 ·方便实现分布式和负载均衡。 ·方便队列化提供服务,而且几乎不可能发生队列满的情况(除非硬盘空间满) ·……
赵4老师 2013-10-28
  • 打赏
  • 举报
回复
我觉得你的方法已经够方便了。
Lion1946 2013-10-28
  • 打赏
  • 举报
回复
感谢赵哥的回复,我现在写的工具中需要用到手机ADB口状态的检测,但是在MFC中无法直接检测ADB端口,所以想写个bat,在bat中检测ADB端口,如果连接,生成一个.txt文件,里面写1,如果未连接,写0,然后再MFC中读取该.txt文件里的数据,判断ADB是否连接,不知道有没有更方便的方式实现,请再帮忙解答下!

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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