热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何判断cmd命令执行完

做了一个视频转换成flv,是用按纽调用cmd命令输出实现的.想实现这样的功能:视频转换完后,系统自动上传到服务器.问题是我不知道什么时候cmd命令输出完毕(这样我才可以调用上传函数
做了一个视频转换成flv,是用按纽调用cmd命令输出实现的.

想实现这样的功能:视频转换完后,系统自动上传到服务器.


问题是我不知道什么时候cmd命令输出完毕(这样我才可以调用上传函数).


请教,谢谢

10 个解决方案

#1



System.Diagnostics.Process.WaitForExit(); 
            

#2


http://topic.csdn.net/t/20050520/20/4023641.html

#3


这是我的调用cmd命令的代码
#region 停止录象-压缩成flv
        private void Stop_Click(object sender, EventArgs e)
        {
          this.ChangeView();  
          Close();
        }
        /// 
        /// 压缩成flv
        /// 

        private void ChangeView()
        {
            stnameflv = stname + ".flv";
            string str = @""+fileName+" "+stnameflv+"";
            //string str = @"f:\test.avi f:\test_allen.flv";
            RunFFMpeg(str);          
        }
        //运行FFMpeg的视频解码,
        public void RunFFMpeg(string strCmd)
        {
            //创建并启动一个新进程
            Process p = new Process();
            //设置进程启动信息属性StartInfo,这是ProcessStartInfo类,包括了一些属性和方法:
            p.StartInfo.FileName = @"F:\ffmpeg.exe";  //程序名
            p.StartInfo.Arguments = " -i " + strCmd; //执行参数
            p.Start();
        }

        //运行Cmd.exe执行Dos 命令,并返回执行结果
        public string RunCmd(string command)
        {
            //创建并启动一个对进程
            Process p = new Process();

            //Process类有一个StartInfo属性,这是ProcessStartInfo类,包括了一些属性和方法,例如:
            p.StartInfo.FileName = "cmd.exe"; //程序名
            p.StartInfo.Arguments = " /c " + command; //执行参数
            p.StartInfo.UseShellExecute = false; //关闭Shell的使用
            p.StartInfo.RedirectStandardInput = true; //重定向标准输入
            p.StartInfo.RedirectStandardOutput = true; //重定向标准输出
            p.StartInfo.RedirectStandardError = true; //重定向错误输出
            p.StartInfo.CreateNoWindow = true; //设置不显示窗口

            p.Start();
            //p.StandardInput.WriteLine(command); //也可以用这种方式输入要执行的命令
            //p.StandardInput.WriteLine("exit"); //不过要记得加上Exit要不然下一行程式执行的时候会当机

            //必须创建可以自动转换完成以后,结束进程的代码
            return p.StandardOutput.ReadToEnd(); //从输出流取得命令执行结果   
        
        }

#4


我的cmd命令窗体在继续转换,我必须判断它何时转换完成,然后才能自动触发上传函数

#5


该回复于2009-08-08 09:51:40被版主删除

#6


引用 1 楼 sandy945 的回复:
C# code
System.Diagnostics.Process.WaitForExit();




这个应该加到哪地方呢

#7


如果你要等到结束去干别的事,就用
System.Diagnostics.Process.WaitForExit(); 

这句话执行了就表示你的cmd干完了。

#8


引用 7 楼 wdgphc 的回复:
如果你要等到结束去干别的事,就用
System.Diagnostics.Process.WaitForExit();

这句话执行了就表示你的cmd干完了。



关键是我不知道这个放到哪里,cmd命令中吗?还是我的button_click代码里(参考我提供的代码)

#9


WaitForExit

#10


引用 3 楼 anya 的回复:
这是我的调用cmd命令的代码
 #region 停止录象-压缩成flv
         private void Stop_Click(object sender, EventArgs e)
         {
           this.ChangeView();
           Close();
         }
         ///  
         /// 压缩成flv
         ///  

         private void ChangeView()
         {
             stnameflv = stname + ".flv";
             string str = @""+fileName+" "+stnameflv+"";
             //string str = @"f:\test.avi f:\test_allen.flv";
             RunFFMpeg(str);
         }
         //运行FFMpeg的视频解码,
         public void RunFFMpeg(string strCmd)
         {
             //创建并启动一个新进程
             Process p = new Process();
             //设置进程启动信息属性StartInfo,这是ProcessStartInfo类,包括了一些属性和方法:
             p.StartInfo.FileName = @"F:\ffmpeg.exe";  //程序名
             p.StartInfo.Arguments = " -i " + strCmd; //执行参数
             p.Start();
         }

         //运行Cmd.exe执行Dos 命令,并返回执行结果
         public string RunCmd(string command)
         {
             //创建并启动一个对进程
             Process p = new Process();

             //Process类有一个StartInfo属性,这是ProcessStartInfo类,包括了一些属性和方法,例如:
             p.StartInfo.FileName = "cmd.exe"; //程序名
             p.StartInfo.Arguments = " /c " + command; //执行参数
             p.StartInfo.UseShellExecute = false; //关闭Shell的使用
             p.StartInfo.RedirectStandardInput = true; //重定向标准输入
             p.StartInfo.RedirectStandardOutput = true; //重定向标准输出
             p.StartInfo.RedirectStandardError = true; //重定向错误输出
             p.StartInfo.CreateNoWindow = true; //设置不显示窗口

             p.Start();
             //p.StandardInput.WriteLine(command); //也可以用这种方式输入要执行的命令
             //p.StandardInput.WriteLine("exit"); //不过要记得加上Exit要不然下一行程式执行的时候会当机

             //必须创建可以自动转换完成以后,结束进程的代码
             return p.StandardOutput.ReadToEnd(); //从输出流取得命令执行结果

         }


p.Start();
             //p.StandardInput.WriteLine(command); //也可以用这种方式输入要执行的命令
             //p.StandardInput.WriteLine("exit"); //不过要记得加上Exit要不然下一行程式执行的时候会当机
             p.WaitForExit(); 
             //必须创建可以自动转换完成以后,结束进程的代码
             return p.StandardOutput.ReadToEnd(); /

加上之后,当p 做完操作之后 才会返回

推荐阅读
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
  • 本文详细介绍了如何在Java Web服务器上部署音视频服务,并提供了完整的验证流程。以AnyChat为例,这是一款跨平台的音视频解决方案,广泛应用于需要实时音视频交互的项目中。通过具体的部署步骤和测试方法,确保了音视频服务的稳定性和可靠性。 ... [详细]
  • 动态壁纸 LiveWallPaper:让您的桌面栩栩如生(第二篇)
    在本文中,我们将继续探讨如何开发动态壁纸 LiveWallPaper,使您的桌面更加生动有趣。作为 2010 年 Google 暑期大学生博客分享大赛 Android 篇的一部分,我们将详细介绍 Ed Burnette 的《Hello, Android》第三版中的相关内容,并分享一些实用的开发技巧和经验。通过本篇文章,您将了解到如何利用 Android SDK 创建引人入胜的动态壁纸,提升用户体验。 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 近期,针对Axis2默认凭据漏洞的攻击案例在安全社区引起了广泛关注。这些攻击通常利用Axis2的默认用户名和密码进行渗透测试,技术手段相对固定。本文在综合分析多个案例的基础上,详细探讨了该漏洞的安全风险,并提出了有效的防范措施,以帮助企业和开发者加强Web服务的安全防护。 ... [详细]
  • Spring框架的核心组件与架构解析 ... [详细]
  • 2018年9月21日,Destoon官方发布了安全更新,修复了一个由用户“索马里的海贼”报告的前端GETShell漏洞。该漏洞存在于20180827版本的某CMS中,攻击者可以通过构造特定的HTTP请求,利用该漏洞在服务器上执行任意代码,从而获得对系统的控制权。此次更新建议所有用户尽快升级至最新版本,以确保系统的安全性。 ... [详细]
author-avatar
缘来是你明
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有