zqiz 发表于 2024-6-24 15:49:26

运行CMD后,怎样停止。就像"ctrl+c"效果。

运行CMD后,怎样停止。就像"ctrl+c"效果。

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

a25926 发表于 2024-6-24 16:07:52

关闭管道

Xelloss0618 发表于 2024-6-24 16:19:55

<火山程序 类型 = "通常" 版本 = 1 />

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


你也可以直接用PIV模块的管道命令行类

大有可为 发表于 2024-6-24 16:29:12

结束进程简单粗暴

zqiz 发表于 2024-6-25 17:17:40

Xelloss0618 发表于 2024-6-24 16:19
方法 终止命令
参数 进程ID
{


PIV模块的管道命令行类,终止命令,怎么有时管用,有时不管用啊 

zqiz 发表于 2024-6-25 17:20:03

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

您这个命令带进程ID参数,cmd窗口 参数 进程ID,怎样能得到?

Xelloss0618 发表于 2024-6-25 18:18:19

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

因为命令行本身也不是随时能接收 Ctrl+C。
运行 和 运行控制台程序 不会返回进程ID,你需要自己重新封装一个。

小弟弟 发表于 2024-6-26 10:13:14

每次运行cmd后获取进程id    通过进程id结束不就行了

zqiz 发表于 2024-6-26 12:13:18

小弟弟 发表于 2024-6-26 10:13
每次运行cmd后获取进程id    通过进程id结束不就行了

是这样

zqiz 发表于 2024-6-27 14:30:59

终止命令 在32位系统上无效
页: [1] 2
查看完整版本: 运行CMD后,怎样停止。就像"ctrl+c"效果。