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 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 "); --開啟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); --關閉光碟機