开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 607|回复: 14
收起左侧

[易语言] 系统_取DOS执行结果,会卡住

[复制链接]
结帖率:94% (116/124)
发表于 2024-5-10 13:08:19 | 显示全部楼层 |阅读模式   广西壮族自治区南宁市
14精币
用了即时回显执行ffmpeg的命令,偶尔会卡住不动,但是不用系统_取DOS执行结果 又正常


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:78% (61/78)

签到天数: 20 天

发表于 2024-5-10 13:35:56 | 显示全部楼层   贵州省遵义市
他不是有备注吗,用线程启动一下

注意:该命令会阻塞,一直到cmd中的内容执行完毕后才会返回.
回复

使用道具 举报

结帖率:63% (12/19)

签到天数: 8 天

发表于 2024-5-10 13:43:55 | 显示全部楼层   河北省沧州市
我是根据源码写了个回调内取回数据。。。
你也可以这么操作试试。。。
获取一部分数据>多少长度   操作一次回调传给子程序!

补充内容 (2024-5-10 13:44):
我是用 ping 192.168.0.1 -t   永恒阻塞  做的测试!
回复

使用道具 举报

结帖率:94% (116/124)

签到天数: 10 天

 楼主| 发表于 2024-5-10 13:57:12 | 显示全部楼层   广西壮族自治区南宁市
emodiyu 发表于 2024-5-10 13:35
他不是有备注吗,用线程启动一下

注意:该命令会阻塞,一直到cmd中的内容执行完毕后才会返回. ...

你没明白我意思,我是遇到卡死的,本来命令几十秒就该执行完了,卡住一直不动,即时回显也不动了
回复

使用道具 举报

结帖率:94% (116/124)

签到天数: 10 天

 楼主| 发表于 2024-5-10 13:58:44 | 显示全部楼层   广西壮族自治区南宁市
兰色的夜晚 发表于 2024-5-10 13:43
我是根据源码写了个回调内取回数据。。。
你也可以这么操作试试。。。
获取一部分数据>多少长度   操作一次 ...
  
子程序名返回值类型公开备 注
回显子程序逻辑型 取DOS返回 即时回显子程序例子。返回逻辑值,真:停止,假:继续
参数名类 型参考可空数组备 注
即时文本文本型
变量名类 型静态数组备 注
回显文本文本型 
回显文本 = 编码_utf8到gb2312 (即时文本)
' 输出调试文本 (回显文本)
编辑框_日志.加入文本 (回显文本 + #换行符 )
返回 ()  ' 这里如果返回真,则停止该DOS进程



就这个回调啊,会卡死,数据不返回一直没反应

点评

这叫乱拳打死老师傅   广东省惠州市  发表于 2024-5-10 17:20
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 19 天

发表于 2024-5-10 15:10:16 | 显示全部楼层   广东省深圳市
用管道,超时退出
回复

使用道具 举报

结帖率:94% (116/124)

签到天数: 10 天

 楼主| 发表于 2024-5-10 18:26:34 | 显示全部楼层   广西壮族自治区南宁市
qq73s5456 发表于 2024-5-10 15:10
用管道,超时退出

能具体一点吗?或者有现成的代码吗?
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 19 天

发表于 2024-5-10 18:30:54 | 显示全部楼层   广东省深圳市
fal8899 发表于 2024-5-10 18:26
能具体一点吗?或者有现成的代码吗?

用命名管道呀,超时退出
  
子程序名返回值类型公开备 注
执行CMD文本型 1
参数名类 型参考可空数组备 注
命令行文本型
即时回显子程序指针
立退返回逻辑型是否是立退返回,不需要执行结果, 壁免长时间阻噻CPU
超时时间整数型超时时间 MS  超时强行强束 返回
变量名类 型静态数组备 注
SECURITY_ATTRIBUTESSECURITY_ATTRIBUTES 
STARTUPINFOSTARTUPINFO_short 
PROCESS_INFORMATIONPROCESS_STRUCTURE 
txt字节集 
len整数型 
hWrite整数型 
hRead整数型 
EXIT整数型 
fanhui文本型 
linshi文本型 
canshu整数型1
开始时间整数型 
置入代码 ( #保护函数头_超级 )
SECURITY_ATTRIBUTES.nLength = 12
SECURITY_ATTRIBUTES.lpSecurityDescriptor = 0
SECURITY_ATTRIBUTES.bInheritHandle = 1
CreatePipe (hRead, hWrite, SECURITY_ATTRIBUTES, 0)
STARTUPINFO.cb = 68
STARTUPINFO.dwFlags = 位或 (1, 256)
STARTUPINFO.wShowWindow = 0
STARTUPINFO.hStdOutput = hWrite
STARTUPINFO.hStdError = hWrite
如果 (取操作系统类别 () ≤ 2)
CreateProcessA (0, “command.com /c ” + 命令行, 0, 0, 真, 0, 0, 0, STARTUPINFO, PROCESS_INFORMATION)


CreateProcessA (0, “cmd.exe /c ” + 命令行, 0, 0, 真, 0, 0, 0, STARTUPINFO, PROCESS_INFORMATION)
CloseHandle (hWrite)
开始时间 = 取启动时间 ()
' //
判断循环首 (len ≠ -1)
PeekNamedPipe (hRead, 0, 0, 0, len, 0)
如果 (len ≠ 0)
txt = 取空白字节集 (1024)
ReadFile (hRead, txt, 1023, len, 0)
linshi = 取字节集数据 (txt, 10, )
如果真 (是否为空 (即时回显))
canshu [1]lstrcpyn (linshi, linshi, 0)
如果真 (CallWindowProcA ({ 85, 139, 236, 86, 139, 117, 16, 141, 78, 255, 133, 201, 124, 21, 139, 69, 12, 141, 4, 136, 65, 139, 16, 137, 85, 16, 255, 117, 16, 131, 232, 4, 73, 117, 242, 255, 85, 8, 137, 69, 12, 139, 69, 20, 133, 192, 116, 13, 141, 4, 181, 0, 0, 0, 0, 137, 69, 16, 3, 101, 16, 139, 69, 12, 94, 93, 194, 16, 0 }, 即时回显, canshu, 1, ))
CloseHandle (hRead)
跳出循环 ()

fanhui = fanhui + linshi
GetExitCodeProcess (PROCESS_INFORMATION.hProcess, EXIT)
如果 (EXIT ≠ 259)
CloseHandle (hRead)
跳出循环 ()



' //超时
如果真 (超时时间 > 0)
如果真 (取启动时间 () - 开始时间 ≥ 超时时间)
CloseHandle (hRead)
跳出循环 ()



处理事件 ()
如果真 (立退返回 = )
CloseHandle (hRead)
跳出循环 ()

判断循环尾 ()
返回 (fanhui)

回复

使用道具 举报

结帖率:94% (116/124)

签到天数: 10 天

 楼主| 发表于 2024-5-10 18:36:53 | 显示全部楼层   广西壮族自治区南宁市
qq73s5456 发表于 2024-5-10 18:30
用命名管道呀,超时退出[e=2].版本 2

.子程序 执行CMD, 文本型, , 1

问题我是cmd下执行是正常的,用系统_取DOS执行结果偶尔会卡住,超时退出的话那个命令就不能执行了,不是我想要的
回复

使用道具 举报

结帖率:93% (39/42)

签到天数: 18 天

发表于 2024-5-10 20:59:09 | 显示全部楼层   广东省深圳市
程序_延迟(1) 拿去~
回复

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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