ProcessStartInfo 例子

如果你想在C#中以管理员新开一个进程,参考: Run process as administrator from a non-admin application
ProcessStartInfo info = new ProcessStartInfo(@"C:\Windows\cmd.exe");
info.UseShellExecute = true;
info.Verb = "runas";
Process.Start(info);

如果你想在命令行加参数,可以参考: Running CMD as administrator with an argument from C#
Arguments = "/user:Administrator \"cmd /K " + command + "\""

-----------------------------------------------------------------------------------------

using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
	/// <summary>
	/// Shell for the sample.
	/// </summary>
	class MyProcess
	{
		// These are the Win32 error code for file not found or access denied.
		const int ERROR_FILE_NOT_FOUND =2;
		const int ERROR_ACCESS_DENIED = 5;

		/// <summary>
		/// Prints a file with a .doc extension.
		/// </summary>
		void PrintDoc()
		{
			Process myProcess = new Process();
			
			try
			{
				// Get the path that stores user documents.
				string myDocumentsPath = 
					Environment.GetFolderPath(Environment.SpecialFolder.Personal);

				myProcess.StartInfo.FileName = myDocumentsPath + "\\MyFile.doc"; 
				myProcess.StartInfo.Verb = "Print";
				myProcess.StartInfo.CreateNoWindow = true;
				myProcess.Start();
			}
			catch (Win32Exception e)
			{
				if(e.NativeErrorCode == ERROR_FILE_NOT_FOUND)
				{
					Console.WriteLine(e.Message + ". Check the path.");
				} 

				else if (e.NativeErrorCode == ERROR_ACCESS_DENIED)
				{
					// Note that if your word processor might generate exceptions
					// such as this, which are handled first.
					Console.WriteLine(e.Message + 
						". You do not have permission to print this file.");
				}
			}
		}


		public static void Main()
		{
			MyProcess myProcess = new MyProcess();
			myProcess.PrintDoc();
		}
	}
}

 ------------------------------------------------------------------------------------

(1) 打开文件

 

 

 

 

 


        private void btnopenfile_click(object sender, eventargs e)
        {
            // 定义一个 processstartinfo 实例
              processstartinfo psi = new processstartinfo();
            // 设置启动进程的初始目录
              psi.workingdirectory = application.startuppath;
            // 设置启动进程的应用程序或文档名
              psi.filename = @"xwy20110619.txt";
            // 设置启动进程的参数
              psi.arguments = "";
            //启动由包含进程启动信息的进程资源
              try
            {
                process.start(psi);
            }
            catch (system.componentmodel.win32exception ex)
            {
                messagebox.show(ex.message);
                return;
            }
        }

 

(2) 打开浏览器


        private void btnopenie_click(object sender, eventargs e)
        {
            // 启动ie进程
              process.start("iexplore.exe");
        }

 

 

(2) 打开指定 url


        private void btnopenurl_click(object sender, eventargs e)
        {
            // 方法一 
              // 启动带参数的ie进程
              process.start("iexplore.exe", "http://www.cnblogs.com/skysoot/");

            // 方法二
              // 定义一个processstartinfo实例
              processstartinfo startinfo = new processstartinfo("iexplore.exe");
            // 设置进程参数
              startinfo.arguments = "http://www.cnblogs.com/skysoot/";
            // 并且使进程界面最小化
              startinfo.windowstyle = processwindowstyle.minimized;
            // 启动进程
              process.start(startinfo);
        }

 

 

(2) 打开文件夹


        private void btnopenfolder_click(object sender, eventargs e)
        {
            // 获取“收藏夹”文件路径
              string myfavoritespath = system.environment.getfolderpath(environment.specialfolder.favorites);
            // 启动进程
              system.diagnostics.process.start(myfavoritespath);
        }

 

 

(2) 打印文档


        private void btnprintdoc_click(object sender, eventargs e)
        {
            // 定义一个进程实例
              process myprocess = new process();
            try
            {
                // 设置进程的参数
                  string mydocumentspath = environment.getfolderpath(environment.specialfolder.personal);
                myprocess.startinfo.filename = mydocumentspath + "\\txtfortest.txt";
                myprocess.startinfo.verb = "print";

                // 显示txt文件的所有谓词: open,print,printto
                foreach (string v in myprocess.startinfo.verbs)
                {
                    messagebox.show(v);
                }

                // 是否在新窗口中启动该进程的值
                  myprocess.startinfo.createnowindow = true;
                // 启动进程
                  myprocess.start();
            }
            catch (win32exception ex)
            {
                if (ex.nativeerrorcode == 1)
                {
                    messagebox.show(ex.message + " check the path." + myprocess.startinfo.filename);
                }
                else if (ex.nativeerrorcode == 2)
                {
                    messagebox.show(ex.message + " you do not have permission to print this file.");
                }
            }

 

转载于:https://www.cnblogs.com/Luffyhuang/p/4310827.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值