首页 > 解决方案 > 向 PowerShell 进程发送中断信号

问题描述

我有一个 VB.NET 程序,它基本上“包装”了 PowerShell 以运行另一个名为 FFmpeg 的应用程序。因此,我的 VB.NET 应用程序运行运行 FFmpeg 的 PowerShell。出于性能原因,我必须这样做。

这是我启动 PowerShell 进程并运行 FFmpeg 命令的代码:

'Start Powershell
Dim PSProc as Process = New Process()
With PSProc.StartInfo
    .FileName = "powershell"
    .UseShellExecute = False
    .CreateNoWindow = True
    .RedirectStandardOutput = True
    .RedirectStandardError = True
    .RedirectStandardInput = True
End With
PSProc.Start()

'Run an FFmpeg command
PSProc.StandardInput.WriteLine("ffmpeg.exe ...")

无论如何,我正试图找出一种方法来立即从我的应用程序中杀死 FFmpeg。

我尝试使用PSProc.Kill(),但这会阻止执行,直到 FFmpeg 完成运行,我真的需要能够立即杀死它。

当我从一个普通的 PowerShell 实例运行 FFmpeg 时,Ctrl+C(中断信号)会立即按照我想要的方式杀死它。但是,我似乎无法找到从 VB 发送中断信号的方法。

有任何想法吗?

标签: vb.netprocess

解决方案


推荐阅读