C#运行文件(类似批处理)
Process myprocess = new Process();
//参数一:运行的文件 参数二:运行文件的参数
ProcessStartInfo startInfo = new ProcessStartInfo("Nginx.exe", "-v");
myprocess.StartInfo = startInfo;
myprocess.StartInfo.UseShellExecute = false;
myprocess.StartInfo.CreateNoWindow = true;
myprocess.Start();
比如用notepad打开a.txt
ProcessStartInfo startInfo = new ProcessStartInfo("Nginx.exe", "-v");
定时器
启动
System.Timers.Timer myTimer = new System.Timers.Timer();
String textBox2Text = this.textBox2.Text;
myTimer.Interval = 2000;
myTimer.Elapsed += new System.Timers.ElapsedEventHandler(autoStart);
myTimer.AutoReset = true; //每到指定时间Elapsed事件是触发一次(false),还是一直触发(true)
myTimer.SynchronizingObject = this;
myTimer.Start();
//如果不写下面这句会有一个异常。
//异常:线程间操作无效: 从不是创建控件"richtextbox"的线程访问它
//但这不是最好的方法。如果只有一个进程调用richtextbox而已。就可以用下面这句
//如果有多个线程调用richtextbox等控件。就要用委托。具体百度
//一篇参考博客http://www.cnblogs.com/zyh-nhy/archive/2008/01/28/1056194.html
//Control.CheckForIllegalCrossThreadCalls = false;
autoStart为定时器定时执行的方法
private void autoStart(object sender, System.Timers.ElapsedEventArgs e)
{
this.label1.Text+="a";
}
终止
myTimer.Stop();
myTimer.Close(); //释放Timer占用的资源
myTimer.Dispose();
查看进程是否存在
Process[] processAfter = System.Diagnostics.Process.GetProcessesByName("nginx");
int num=processAfter.Length;
终止进程
Process[] killprocess = System.Diagnostics.Process.GetProcessesByName(processName);
if (killprocess.Length > 0)
{
foreach (Process P in killprocess)
{
P.Kill();
}
}