C# Process.Start()方法詳解

來源:互聯網
上載者:User

標籤:工作   rundll32   tray   發郵件   shutdown   虛擬   path   開啟檔案   內建函式   

System.Diagnostics.Process.Start(); 能做什麼呢?它主要有以下幾個功能:

1、開啟某個連結網址(彈窗)。

2、定位開啟某個檔案目錄。

3、開啟系統特殊檔案夾,如“控制台”等。

那麼它是怎麼實現這幾個功能的呢?在講應用前,我們先來看看Process.Star()的構造方法。

名稱     說明
Process.Start ()     啟動(或重用)此 Process 組件的 StartInfo 屬性指定的進程資源,並將其

與該組件關聯。
Process.Start (ProcessStartInfo)     啟動由包含進程啟動資訊(例如,要啟動的進程的文

件名)的參數指定的進程資源,並將該資源與新的 Process 組件關聯。
Process.Start (String)     通過指定文檔或應用程式檔案的名稱來啟動進程資源,並將資源

與新的 Process 組件關聯。
Process.Start (String, String)     通過指定應用程式的名稱和一組命令列參數來啟動一個進程資源

,並將該資源與新的 Process 組件相關聯。
Process.Start (String, String, SecureString, String)     通過指定應用程式的名稱、使用者名稱、密碼

和域來啟動一個進程資源,並將該資源與新的 Process 組件關聯起來。
Process.Start (String, String, String, SecureString, String)     通過指定應用程式的名稱和一

組命令列參數、使用者名稱、密碼和域來啟動一個進程資源,並將該資源與新的 Process 組件關聯起

來。


(1) publicbool Start ()

System.Diagnostics.Process process = new System.Diagnostics.Process();

process.StartInfo.FileName = "iexplore.exe";   //IE瀏覽器,可以更換

process.StartInfo.Arguments = "http://www.baidu.com";

process.Start();
(2) publicstaticProcessStart (ProcessStartInfostartInfo)

System.Diagnostics.ProcessStartInfo processStartInfo = new 

System.Diagnostics.ProcessStartInfo();

processStartInfo.FileName = "explorer.exe";  //資源管理員

processStartInfo.Arguments = @"D:\";

System.Diagnostics.Process.Start(processStartInfo);
(3) publicstaticProcessStart (stringfileName)

System.Diagnostics.Process.Start(@"D:\Program Files\Tencent\QQ\Bin\QQ.exe");  //直接

調用開啟檔案


(4) Process.Start (StringfileName, Stringarguments) 

System.Diagnostics.Process.Start("explorer.exe", "D:\\Readme.txt");   //直接開啟檔案

Readme.txt
上面已經舉例了用process.start()開啟網站的方法,現在講講用processs.star()定位到某個檔案的

方法。

這種定位方法類似於捷徑上的尋找目標://explorer /select,"D:\Program Files\Tencent

\QQ\Bin\QQ.exe"

String path = @"D:\Program Files\Tencent\QQ\Bin\QQ.exe";

System.Diagnostics.Process.Start("explorer.exe", "/select," +path);  //定位開啟D:\Program 

Files\Tencent\QQ\Bin檔案目錄並選中了QQ.exe

注意:/select後還有個逗號(,)。


接下來來講講通過調用rundll32.exe來開啟一些系統特定檔案,先簡單介紹下rundll32.exe的功能

和作用。

顧名思義,rundll32就是"執行32位的dll檔案",也就是執行dll檔案中的內建函式,可以以命令列

的形式調用windows32位的動態連結程式庫。

同理,rundll.exe就是"執行16位的dll檔案",調用的是16位的動態連結程式庫。我們通過

rundll32.exe執行指令來完成一些功能。
舉個例子:

System.Diagnostics.Process.Start("rundll32.exe","user.exe,restartwindows");      //系統重啟

命令
rundll32命令大全
命令列:rundll32.exe user.exe,restartwindows
功能: 系統重啟

命令列:rundll32.exe user.exe,exitwindows
功能: 關閉系統

命令列: rundll32.exe shell32.dll,Control_RunDLL
功能: 顯示控制台

命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1
功能: 顯示“控制台-輔助選項-鍵盤”選項視窗

命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2
功能: 顯示“控制台-輔助選項-聲音”選項視窗

命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3
功能: 顯示“控制台-輔助選項-顯示”選項視窗

命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4
功能: 顯示“控制台-輔助選項-滑鼠”選項視窗

命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5
功能: 顯示“控制台-輔助選項-傳統”選項視窗

命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1
功能: 執行“控制台-添加新硬體”嚮導。 

命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter
功能: 執行“控制台-添加新印表機”嚮導。

命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1
功能: 顯示 “控制台-添加/刪除程式” 面板。

命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1
功能: 顯示 “控制台-添加/刪除程式-安裝/卸載” 面板。

命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2
功能: 顯示 “控制台-添加/刪除程式-安裝Windows” 面板。

命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,3
功能: 顯示 “控制台-添加/刪除程式-啟動盤” 面板。

命令列: rundll32.exe syncui.dll,Briefcase_Create
功能: 在案頭上建立一個新的“我的公事包”。

命令列: rundll32.exe diskcopy.dll,DiskCopyRunDll
功能: 顯示複製軟碟視窗

命令列: rundll32.exe apwiz.cpl,NewLinkHere %1
功能: 顯示“建立捷徑”的對話方塊,所建立的捷徑的位置由%1參數決定。

命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0
功能: 顯示“日期與時間”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,1
功能: 顯示“時區”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,3
功能: 顯示 “控制台-添加/刪除程式-啟動盤” 面板。

命令列: rundll32.exe syncui.dll,Briefcase_Create
功能: 在案頭上建立一個新的“我的公事包”。

命令列: rundll32.exe diskcopy.dll,DiskCopyRunDll
功能: 顯示複製軟碟視窗

命令列: rundll32.exe apwiz.cpl,NewLinkHere %1
功能: 顯示“建立捷徑”的對話方塊,所建立的捷徑的位置由%1參數決定。

命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0
功能: 顯示“日期與時間”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,1
功能: 顯示“時區”選項視窗。

命令列: rundll32.exe rnaui.dll,RnaDial [某個撥號連線的名稱]
功能: 顯示某個撥號連線的撥號視窗。如果已經撥號連線,則顯示目前的串連狀態的視窗。

命令列: rundll32.exe rnaui.dll,RnaWizard
功能: 顯示“建立撥號連線”嚮導的視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0
功能: 顯示“顯示內容-背景”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1
功能: 顯示“顯示內容-螢屏保護”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2
功能: 顯示“顯示內容-外觀”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3
功能: 顯示顯示“顯示內容-屬性”選項視窗。

命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL FontsFolder
功能: 顯示Windows的“字型”檔案夾。 

命令列: rundll32.exe rnaui.dll,RnaDial [某個撥號連線的名稱]
功能: 顯示某個撥號連線的撥號視窗。如果已經撥號連線,則顯示目前的串連狀態的視窗。

命令列: rundll32.exe rnaui.dll,RnaWizard
功能: 顯示“建立撥號連線”嚮導的視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0
功能: 顯示“顯示內容-背景”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1
功能: 顯示“顯示內容-螢屏保護”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2
功能: 顯示“顯示內容-外觀”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3
功能: 顯示顯示“顯示內容-屬性”選項視窗。

命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL FontsFolder
功能: 顯示Windows的“字型”檔案夾。

命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3
功能: 同樣是顯示Windows的“字型”檔案夾。

命令列: rundll32.exe shell32.dll,SHFormatDrive
功能: 顯示格式化軟碟對話方塊。

命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,0
功能: 顯示“控制台-遊戲控制器-一般”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,1
功能: 顯示“控制台-遊戲控制器-進階”選項視窗。

命令列: rundll32.exe mshtml.dll,PrintHTML (HTML文檔)
功能: 列印HTML文檔。

命令列: rundll32.exe shell32.dll,Control_RunDLL mlcfg32.cpl
功能: 顯示Microsoft Exchange一般選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @0
功能: 顯示“控制台-滑鼠” 選項 。

命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1
功能: 顯示 “控制台-鍵盤屬性-速度”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1,,1
功能: 顯示 “控制台-鍵盤屬性-語言”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @2
功能: 顯示Windows“印表機”檔案夾。

命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @4
功能: 顯示“控制台-IME屬性-IME”選項視窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL modem.cpl,,add
功能: 執行“添加新數據機”嚮導。

命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0
功能: 顯示“控制台-多媒體屬性-音頻”屬性頁面。

命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,1
功能: 顯示“控制台-多媒體屬性-視頻”屬性頁面。

命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,2
功能: 顯示“控制台-多媒體屬性-MIDI”屬性頁面。

命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,3
功能: 顯示“控制台-多媒體屬性-CD音樂”屬性頁面。

命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,4
功能: 顯示“控制台-多媒體屬性-裝置”屬性頁面。 

命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1
功能: 顯示“控制台-聲音”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl
功能: 顯示“控制台-網路”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL odbccp32.cpl
功能: 顯示ODBC32資料管理選項視窗。

命令列: rundll32.exe shell32.dll,OpenAs_RunDLL {drive:/path/filename}
功能: 顯示指定檔案(drive:/path/filename)的“開啟檔案”對話方塊。

命令列: rundll32.exe shell32.dll,Control_RunDLL password.cpl
功能: 顯示“控制台-密碼”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl
功能: 顯示“控制台-電源管理屬性”選項視窗。

命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL PrintersFolder
功能: 顯示Windows“印表機”檔案夾。(同rundll32.exe shell32.dll,Control_RunDLL main.cpl 

@2)

命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0 
功能: 顯示“控制台-地區設定屬性-地區設定”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,1
功能: 顯示“控制台-地區設定屬性-數字”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,2
功能: 顯示“控制台-地區設定屬性-貨幣”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3
功能: 顯示“控制台-地區設定屬性-時間”選項視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,4
功能: 顯示“控制台-地區設定屬性-日期”選項視窗。

命令列: rundll32.exe desk.cpl,InstallScreenSaver [螢屏保護檔案名]
功能: 將指定的螢屏保護檔案設定為Windows的屏保,並顯示螢屏保護屬性視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0
功能: 顯示“控制台-系統屬性-傳統”屬性視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1
功能: 顯示“控制台-系統屬性-裝置管理員”屬性視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,2
功能: 顯示“控制台-系統屬性-硬體配置檔案”屬性視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,3
功能: 顯示“控制台-系統屬性-效能”屬性視窗。

命令列: rundll32.exe shell32.dll,Control_RunDLL telephon.cpl
功能: 顯示“撥號屬性”選項視窗

命令列: rundll32.exe shell32.dll,Control_RunDLL themes.cpl

功能: 顯示“桌面主題”選項面板


命令列: rundll32.exe shell32.dll,Control_RunDLL firewall.cpl
功能: 顯示“Windows防火牆"面板

命令列: rundll32.exe shell32.dll,Control_RunDLL NetSetup.cpl,@0,WNSW
功能: 顯示“無線網路設定"面板

更多的命令請到這裡下載:http://download.csdn.net/detail/czw2010/4530206

System.Diagnostics.Process.Start("notepad.exe");        -- 開啟記事本

System.Diagnostics.Process.Start("calc.exe ");                -- 開啟計算機

System.Diagnostics.Process.Start("regedit.exe ");           -- 開啟註冊表

System.Diagnostics.Process.Start("mspaint.exe ");        -- 開啟畫圖板

System.Diagnostics.Process.Start("write.exe ");              -- 開啟寫字板

System.Diagnostics.Process.Start("mplayer2.exe ");        --開啟播放器

System.Diagnostics.Process.Start("taskmgr.exe ");          --開啟工作管理員

System.Diagnostics.Process.Start("eventvwr.exe ");          --開啟事件檢視器

System.Diagnostics.Process.Start("winmsd.exe ");           --開啟系統資訊

System.Diagnostics.Process.Start("winver.exe ");              --開啟Wind

System.Diagnostics.Process.Start("regedit.exe ");           -- 開啟註冊表

System.Diagnostics.Process.Start("mspaint.exe ");        -- 開啟畫圖板

System.Diagnostics.Process.Start("write.exe ");              -- 開啟寫字板

System.Diagnostics.Process.Start("mplayer2.exe ");        --開啟播放器

System.Diagnostics.Process.Start("taskmgr.exe ");          --開啟工作管理員

System.Diagnostics.Process.Start("eventvwr.exe ");          --開啟事件檢視器

System.Diagnostics.Process.Start("winmsd.exe ");           --開啟系統資訊

System.Diagnostics.Process.Start("winver.exe ");              --開啟Windows版本資訊

System.Diagnostics.Process.Start("mailto: "+ address);    -- 發郵件

shutdown.exe:

參數:-s 關機   -r重啟   -f強行   -t 時間    -a 取消關機   -l 登出    -i 顯示使用者介面

System.Diagnostics.Process.Start("shutdown.exe","-r");              -- 關閉並重啟電腦

System.Diagnostics.Process.Start("shutdown.exe","-s -f");          -- 關閉電腦

System.Diagnostics.Process.Start("shutdown.exe","-s -f 30");     -- 30s後關閉電腦

System.Diagnostics.Process.Start("shutdown.exe","-l");               --登出電腦

System.Diagnostics.Process.Start("winver.exe ");              --開啟Windows版本資訊

System.Diagnostics.Process.Start("mailto: "+ address);    -- 發郵件

shutdown.exe:

參數:-s 關機   -r重啟   -f強行   -t 時間    -a 取消關機   -l 登出    -i 顯示使用者介面

System.Diagnostics.Process.Start("shutdown.exe","-r");              -- 關閉並重啟電腦

System.Diagnostics.Process.Start("shutdown.exe","-s -f");          -- 關閉電腦

System.Diagnostics.Process.Start("shutdown.exe","-s -f 30");     -- 30s後關閉電腦

System.Diagnostics.Process.Start("shutdown.exe","-l");               --登出電腦

System.Diagnostics.Process.Start("shutdown.exe","-a");              --撤銷關閉電腦

SpecialFolder枚舉成員:

成員名稱     說明
ApplicationData     目錄,它用作當前漫遊使用者的應用程式特定資料的公用儲存庫。

漫遊使用者在網路上的多台電腦上工作。漫遊使用者的設定檔儲存在網路伺服器上,當使用者登入

到某個系統上時,它會載入到該系統。
CommonApplicationData     目錄,它用作所有使用者使用的應用程式特定資料的公用儲存庫。
CommonProgramFiles     用於應用程式間共用的組件的目錄。
Cookies     用作 Internet Cookie 的公用儲存庫的目錄。
Desktop     邏輯案頭,而不是物理檔案系統位置。
DesktopDirectory     用於物理上儲存案頭上的檔案對象的目錄。

不應將此目錄與案頭檔案夾本身混淆,後者是虛擬資料夾。
Favorites     用作使用者收藏夾項的公用儲存庫的目錄。
History     用作 Internet 記錄項的公用儲存庫的目錄。
InternetCache     用作 Internet 臨時檔案的公用儲存庫的目錄。
LocalApplicationData     目錄,它用作當前非漫遊使用者使用的應用程式特定資料的公用儲

存庫。
MyComputer     “我的電腦”檔案夾。
注意

由於沒有為“我的電腦”檔案夾定義路徑,因此 MyComputer 常數將始終產生Null 字元串 ("")。
MyDocuments     “我的電腦”檔案夾。
MyMusic     “My Music”檔案夾。
MyPictures     “My Pictures”檔案夾。
Personal     用作文檔的公用儲存庫的目錄。
ProgramFiles     “Program files”目錄。
Programs     包含使用者程式組的目錄。
Recent     包含使用者最近使用過的文檔的目錄。
SendTo     包含“發送”功能表項目的目錄。
StartMenu     包含“開始”功能表項目的目錄。
Startup     對應於使用者的“啟動”程式組的目錄。

每當使用者登入、啟動 Windows NT 或更高版本或啟動 Windows 98 時,系統均會啟動這些程式


System     “System”目錄。
Templates     用作文件範本的公用儲存庫的目錄。

通過Environment.GetFolderPath(Environment.SpecialFolder.XXXXX);我們可以輕鬆地獲得系

統特殊檔案夾的具體路徑,然後用Process.Start()方法開啟該檔案夾。

例如:

System.Diagnostics.Process.Start(Environment.GetFolderPath

(Environment.SpecialFolder.System));   //開啟系統檔案夾(System32檔案夾)

 [System.Runtime.InteropServices.DllImportAttribute("user32.dll")]
        private static extern int FindWindow(string ClassName, string WindowName);

[System.Runtime.InteropServices.DllImport("user32.dll")]
        private static extern int ShowWindow(int handle, int cmdShow);

[System.Runtime.InteropServices.DllImport("winmm.dll", EntryPoint = "mciSendString", 

CharSet = System.Runtime.InteropServices.CharSet.Auto)]
        private static extern int mciSendString(string lpstrCommand, string lpstrReturnstring, 

int uReturnLength, int hwndCallback);

        private const int SW_HIDE = 0;//API參數表示隱藏窗
private const int SW_SHOW = 5;//API參數表示用當前的大小和位置顯示視窗

        ShowWindow(FindWindow("Shell_TrayWnd", null), SW_HIDE);         -- 隱藏隱藏工作列

        ShowWindow(FindWindow("Shell_TrayWnd", null), SW_SHOW);      --  顯示工作列

        mciSendString("set CDAudio door open", null, 127, 0);       -- 彈出光碟機

        mciSendString("set CDAudio door closed", null, 127, 0);     --關閉光碟機
本文轉載自:http://blog.csdn.net/chen_zw/article/details/7896264(博主:霧裡看花)

C# Process.Start()方法詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.