如果你想在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.");
}
}