怎样使用进程

一,使用ProcessStartInfo启动进程:

技术分享
// 指定启动进程时使用的一组值
            System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo()
            {
                FileName = "notepad.exe", // 设置外部程序名
                Arguments = "test.txt", // 设置外部程序的启动参数(命令行参数)为test.txt
                WorkingDirectory = @"C:\Users\Administrator\Desktop",  // 设置外部程序工作目录为 C:\Users\Administrator\Desktop
                CreateNoWindow = false, // 获取或设置指示是否在新窗口中启动该进程的值
            };

            // 声明一个程序类
            System.Diagnostics.Process proc;

            try
            {
                // 启动外部程序
                proc = System.Diagnostics.Process.Start(info);
            }
            catch (System.ComponentModel.Win32Exception e)
            {
                Console.WriteLine("系统找不到指定的程序文件。\r{0}", e);
                return;
            }

            // 打印出外部程序的开始执行时间
            Console.WriteLine("外部程序的开始执行时间:{0}", proc.StartTime);

            // 等待3秒钟
            proc.WaitForExit(3000);

            // 如果这个外部程序没有结束运行则对其强行终止
            if (proc.HasExited == false)
            {
                Console.WriteLine("由主程序强行终止外部程序的运行!");
                proc.Kill();
                ////给10毫秒时间停止进程
                System.Threading.Thread.Sleep(TimeSpan.FromMilliseconds(10));
            }
            else
            {
                Console.WriteLine("由外部程序正常退出!");
            }

            Console.WriteLine("外部程序的结束运行时间:{0}", proc.ExitTime);
            Console.WriteLine("外部程序在结束运行时的返回值:{0}", proc.ExitCode);
View Code

二,使用Start(string fileName, string arguments)启动进程:

技术分享
// 声明一个程序类
            System.Diagnostics.Process proc;

            try
            {
                // 启动外部程序
                proc = System.Diagnostics.Process.Start("notepad.exe", @"C:\Users\Administrator\Desktop\test.txt");
            }
            catch (System.ComponentModel.Win32Exception e)
            {
                Console.WriteLine("系统找不到指定的程序文件。\r{0}", e);
                return;
            }

            // 打印出外部程序的开始执行时间
            Console.WriteLine("外部程序的开始执行时间:{0}", proc.StartTime);

            // 等待3秒钟
            proc.WaitForExit(3000);

            // 如果这个外部程序没有结束运行则对其强行终止
            if (proc.HasExited == false)
            {
                Console.WriteLine("由主程序强行终止外部程序的运行!");
                proc.Kill();
                ////给10毫秒时间停止进程
                System.Threading.Thread.Sleep(TimeSpan.FromMilliseconds(10));
            }
            else
            {
                Console.WriteLine("由外部程序正常退出!");
            }

            Console.WriteLine("外部程序的结束运行时间:{0}", proc.ExitTime);
            Console.WriteLine("外部程序在结束运行时的返回值:{0}", proc.ExitCode);
View Code

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。