我正在QProcess中运行vlc来启动视频捕获流。
但是,当我这样做时
data[Object.keys(data)[0]] = ''
它不会终止vlc进程,并且正在执行
m_process.terminate();
使程序崩溃,并且无法正确保存视频文件。
我看到QProcess有一个write()函数,所以我想我可以将热键Ctrl + Q发送到QProcess,但我似乎找不到让它工作的方法。有什么想法吗?
答案 0 :(得分:0)
我找到了一个解决方案,但我并不特别喜欢它,因为它没有使用Qt并且依赖于os。
我编写了一个以进程PID为参数的vbscript。
set shell = WScript.CreateObject("WScript.Shell")
dim Time
Time = 0
Do Until Success = True OR Time > 5000
Success = shell.AppActivate(Wscript.Arguments(0))
Wscript.Sleep 1000
Time = Time + 1000
Loop
if Success = True Then
Wscript.Echo "Found vlc"
shell.SendKeys "^q"
Else
Wscript.Echo "Did not find vlc"
End if
它还有一个时间限制来激活aplicataion。
然后我通过系统
运行它system("cscript myScript.vbs PID")