TC官方合作论坛

 找回密码
 立即注册
查看: 74753|回复: 461

[其他] TC中执行CMD命令返回回显的内容DLL

  [复制链接]
发表于 2013-8-4 20:11:50 | 显示全部楼层 |阅读模式
本帖最后由 venski 于 2013-12-21 13:22 编辑

TC中虽然也有执行CMD命令的功能,但没有回显内容,比如:
//一个简单的拷文件命令.
是否成功=辅助.命令("cmd /c copy c:\\1.txt c:\\2.txt",false)
或许,你想到了,可以用WScript.Shell达到目的,非常可惜地是,显示黑黑的DOS窗口,一闪而过.
比如:
批处理对象=com("WScript.Shell")
批处理执行对象=批处理对象.exec("ping 192.168.1.1")
批处理输出对象=批处理执行对象.StdOut()
批处理返回值=批处理输出对象.Readall()

你也可能使用
批处理对象.run("1.bat",0)
把CMD命令写在bat文件,然后输出一个文件的办法,其实这也是可以的.
当然,我们的C语言中,可以利用creatprocess来进理这个问题,显然,TC暂时不支持结构(以后可能发生的事,以后再说).
现实中,我们很多地方需要执行CMD命令(批处理)而得到回显内容.
就比如,我们 ping 192.168.1.1,需要得到回显的:

正在 Ping 192.168.1.1 具有 32 字节的数据:
来自 192.168.1.1 的回复: 字节=32 时间=17ms TTL=62


还有,很多,比如,你用CMD操作 wmi取得硬件信息/查看现在的进程/远程执行shell/远程执行FTP等等命令.
这就来帮你解决难题:
附件,有写好的一个DLL插件,放在生成目录,你只要简单地调用就可以.

变量 命令文本="cmd /c ping 192.168.1.1"
批处理返回值=dllcall("qs.dll","char *","Tcmd","char *",命令文本)
辅助.消息框(批处理返回值,"")

DLL介绍:
你看他体积那么小就可以理解,仅此一个功能,执行CMD.
执行CMD命令并返回内容,不显示黑黑的窗口.
原理:
采用powerbasic编译器制作,创建管道,创建进程的方式让CMD命令在后台执行,不显示黑黑的窗口.

游客,如果您要查看本帖隐藏内容请回复


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1威望 +10 金币 +10 收起 理由
OOOO + 10 + 10 很给力!

查看全部评分

回复

使用道具 举报

发表于 2013-8-4 20:57:42 | 显示全部楼层
098098098098098
回复 支持 反对

使用道具 举报

发表于 2013-8-4 21:01:01 | 显示全部楼层
不错
回复 支持 反对

使用道具 举报

发表于 2013-8-4 21:09:57 | 显示全部楼层
怎么又是一个VB呀
回复 支持 反对

使用道具 举报

发表于 2013-8-4 22:34:37 | 显示全部楼层
好东西啊 就是在找这个
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-4 22:59:05 | 显示全部楼层
回复 4楼1106752189的帖子

vb有某些地方的长处,我不会C语言,只能这样了.这是powerbasic , VB不能与此相提并论
回复 支持 反对

使用道具 举报

发表于 2013-8-10 19:45:00 | 显示全部楼层
powerbasic是什么呀
回复 支持 反对

使用道具 举报

发表于 2013-8-10 23:28:08 | 显示全部楼层
高手!有兴趣教教我编程~~~
回复 支持 反对

使用道具 举报

发表于 2013-8-13 02:22:55 | 显示全部楼层
学学
回复 支持 反对

使用道具 举报

发表于 2013-8-20 06:03:56 | 显示全部楼层
看看
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-4-21 07:20 , Processed in 0.047262 second(s), 24 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表