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 功能: 顯示“控制面板-輸入法屬性-輸入法”選項視窗。
命令列: 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 | “我的電腦”文件夾。
|
||
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); --關閉光驅
原文鏈接:https://www.cnblogs.com/zeroone/archive/2013/01/13/2858837.html