C# 运行指定程序,可以方便扩展

来源:互联网 发布:龙岩新罗天气预报软件 编辑:程序博客网 时间:2024/06/08 05:07

主要测试代码:

using System;using System.Collections.Generic;using System.Windows.Forms;using System.IO;using System.Diagnostics;namespace CallBat{/// <summary>/// 作者:Jave.Lin/// </summary>static class Program{/// <summary>/// 应用程序的主入口点。/// </summary>[STAThread]static void Main(string[] args){//Application.EnableVisualStyles();//Application.SetCompatibleTextRenderingDefault(false);//Application.Run(new Form1());if (args.Length == 0){Console.WriteLine("args.Length==0 error!");return;}string fileName = args[0];if (!File.Exists(fileName)){Console.WriteLine("fileName is not Exists error! the fileName is:\r\n"+fileName);return;}string fileNameNoExtension = Path.GetFileNameWithoutExtension(fileName);Process[] tps = Process.GetProcessesByName(fileNameNoExtension);if (tps != null){foreach (Process tp in tps){if (tp.ProcessName == fileNameNoExtension){try{Console.WriteLine("[" + fileNameNoExtension + "] process had run, and then will kill it!");tp.Kill();tp.Close();}catch{ }}}}string workDirectory = Path.GetDirectoryName(fileName);System.Diagnostics.Process p = new System.Diagnostics.Process();p.StartInfo.UseShellExecute = false;p.StartInfo.CreateNoWindow = true;//设置为false将会看到程序窗口 p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;//启动进程时窗口状态 p.StartInfo.RedirectStandardOutput = true;//p.StartInfo.FileName = Server.MapPath("a.bat"); p.StartInfo.FileName = fileName;//如果a.bat在System32文件夹中,此处只需填写文件名即可p.StartInfo.WorkingDirectory = workDirectory;if (args.Length > 1){string argsStr = string.Empty;for (int i = 1; i < args.Length; i++){argsStr += args[i] + " ";}p.StartInfo.Arguments = argsStr;}p.Start();p.Close(); }}}


原创粉丝点击