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