1、启动应用程序
System.Diagnostics.Process pro = new System.Diagnostics.Process();
pro.StartInfo.FileName = "C:\\Program Files\\Winsoft\\WinMain.exe";
pro.Start();//关键
2、启动网页
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents=false;
proc.StartInfo.FileName="iexplore";
proc.StartInfo.Arguments="http://www.csdn.net";
proc.Start();
proc.WaitForExit();
MessageBox.Show("You have just visited www.microsoft.com");
3、C#中关于System.Diagnostics.Process的应用
bat文件控制参数的方法:
将你的net use \\172.16.17.1 /user:username password写到bat文件中,然后运行下面代码就可以了。
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.CreateNoWindow = false;
process.StartInfo.FileName = "d:\\netuse.bat";
process.Start();
程序控制参数方法:
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
psi.FileName = @"C:\WINDOWS\system32\cmd.exe"; // Path for the cmd prompt
psi.Arguments =@"net use \\172.16.17.1 /user:username password";
psi.WindowStyle=System.Diagnostics.ProcessWindowStyle.Hidden;
System.Diagnostics.Process.Start(psi);
就是用进程启动cmd.exe
使用Process类运行ShellExecute的一个问题
只有在STA线程上ShellExecute 才能确保工作无误。在Process的实现中,并没有考虑到这个问题,所以使用Process类运行ShellExecute可能会出错。如果你不能保证调用Process.Start的线程的ApartmentState,可以使用如下的代码来避免这个问题:
using System;
using System.Threading;\
p lic class Foo{
p lic static void OpenUrl() {
System.Diagnostics.Process.Start(@"http://www.google.com");
}
p lic static void Main() {
ThreadStart openUrlDelegate = new ThreadStart(Foo.OpenUrl);
Thread myThread = new Thread(openUrlDelegate);
myThread.SetApartmentState(ApartmentState.STA);
myThread.Start();
myThread.Join();
}
}
相关文章
- 我如何将rails应用程序上的ruby导入另一台计算机
- 现实世界的 Windows Azure:HRG将应用程序扩展到移动设备,削减80 %的启动成本
- 可以使用什么Java Swing事件来了解应用程序何时启动?
- C# 对WinForm应用程序的App.config的使用及加密
- 将音乐文件从一个应用程序发送到另一个应用
- Django - 如何让一个应用程序引用另一个应用程序
- 无法启动Amazon弹性豆茎—Ruby (Rack)应用程序
- 为什么Spring引导web应用程序在启动后立即关闭?
- 如何使用WPF在Visual C#2008中获取自定义应用程序名称和启动窗口名称?
- XCode 5单元测试:启动我的应用程序