递归火山软件开发平台

标题: 运行CMD后,怎样停止。就像"ctrl+c"效果。 [打印本页]

作者: zqiz    时间: 2024-6-24 15:49
标题: 运行CMD后,怎样停止。就像"ctrl+c"效果。
运行CMD后,怎样停止。就像"ctrl+c"效果。

有时ffmpeg转换视频时,中途怎样用程序停止。

作者: a25926    时间: 2024-6-24 16:07
关闭管道
作者: Xelloss0618    时间: 2024-6-24 16:19
<火山程序 类型 = "通常" 版本 = 1 />

方法 终止命令 <公开 静态 注释 = "在命令行提示符中发出CTRL+C信号,终止正在执行的命令.">
参数 进程ID <类型 = 整数>
{
    @ ::AttachConsole((DWORD)@<进程ID>);
    @ ::GenerateConsoleCtrlEvent(CTRL_C_EVENT, (DWORD)@<进程ID>);
    @ ::FreeConsole();
}


你也可以直接用PIV模块的管道命令行类
作者: 大有可为    时间: 2024-6-24 16:29
结束进程  简单粗暴
作者: zqiz    时间: 2024-6-25 17:17
Xelloss0618 发表于 2024-6-24 16:19
方法 终止命令
参数 进程ID
{

PIV模块的管道命令行类,终止命令,怎么有时管用,有时不管用啊 
作者: zqiz    时间: 2024-6-25 17:20
zqiz 发表于 2024-6-25 17:17
PIV模块的管道命令行类,终止命令,怎么有时管用,有时不管用啊 

您这个命令带进程ID参数,cmd窗口 参数 进程ID,怎样能得到?
作者: Xelloss0618    时间: 2024-6-25 18:18
zqiz 发表于 2024-6-25 17:17
PIV模块的管道命令行类,终止命令,怎么有时管用,有时不管用啊 

因为命令行本身也不是随时能接收 Ctrl+C。
运行 和 运行控制台程序 不会返回进程ID,你需要自己重新封装一个。
作者: 小弟弟    时间: 2024-6-26 10:13
每次运行cmd后获取进程id    通过进程id结束不就行了
作者: zqiz    时间: 2024-6-26 12:13
小弟弟 发表于 2024-6-26 10:13
每次运行cmd后获取进程id    通过进程id结束不就行了

是这样
作者: zqiz    时间: 2024-6-27 14:30
终止命令 在32位系统上无效
作者: zqiz    时间: 2024-6-27 16:44
怎样取cmd窗口句柄?
作者: zqiz    时间: 2024-6-27 17:12
Xelloss0618 发表于 2024-6-24 16:19
方法 终止命令
参数 进程ID
{

大佬,终止命令,在win7上不行,在win10没问题。
作者: zqiz    时间: 2024-6-27 18:36
大有可为 发表于 2024-6-24 16:29
结束进程  简单粗暴

结束进行不行,转换的视频,会打不开。cttl+c  或q键关闭cmd窗口才可。用模拟按键吧,又激活不了cmd窗口。太难了。
作者: hmyroot    时间: 2024-6-28 21:53
本帖最后由 hmyroot 于 2024-6-28 21:56 编辑

我之前用易语言写过,要发送组合按键消息到cmd窗口,到精易论坛搜索一下应该有易语言例子,参照易语言写火山程序就可以了




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4