这段代码执行“handbrakecli”(一个命令行应用程序),并将输出放入一个字符串中:
问题在于这可能需要长达20分钟的时间才能完成,期间没有任何反馈给用户。一旦完成,他们将看到应用程序的所有输出,包括进度细节。并不是非常有用。
因此,我正在尝试找到一个示例,展示以下最佳方法:
1. 启动一个外部应用程序(隐藏) 2. 定期监视其输出,因为它显示有关其进度的信息(以便我可以提取并向用户呈现漂亮的百分比条) 3. 确定外部应用程序何时完成(以便我不能继续执行自己的应用程序) 4. 必要时杀死外部应用程序,并检测是否发生了这种情况(以便如果用户点击“取消”,我会采取适当的步骤)
有人有推荐的代码片段吗?
Dim p As Process = New Process
p.StartInfo.FileName = "handbrakecli"
p.StartInfo.Arguments = "-i [source] -o [destination]"
p.StartInfo.UseShellExecute = False
p.StartInfo.RedirectStandardOutput = True
p.Start
Dim output As String = p.StandardOutput.ReadToEnd
p.WaitForExit
问题在于这可能需要长达20分钟的时间才能完成,期间没有任何反馈给用户。一旦完成,他们将看到应用程序的所有输出,包括进度细节。并不是非常有用。
因此,我正在尝试找到一个示例,展示以下最佳方法:
1. 启动一个外部应用程序(隐藏) 2. 定期监视其输出,因为它显示有关其进度的信息(以便我可以提取并向用户呈现漂亮的百分比条) 3. 确定外部应用程序何时完成(以便我不能继续执行自己的应用程序) 4. 必要时杀死外部应用程序,并检测是否发生了这种情况(以便如果用户点击“取消”,我会采取适当的步骤)
有人有推荐的代码片段吗?