Rundll32.exe 是 Windows 內建工具,用途是「以命令列方式載入並執行 DLL(動態連結庫)中匯出的函式」。它讓我們無需撰寫程式,即可直接呼叫系統 DLL 內建的功能——開啟控制面板項目、管理硬體、操作印表機、甚至關機重啟。
rundll32.exe <DLL路徑>, <入口點函式名> [可選參數]三大鐵律:
C:\Progra~1)GetUserName),只能呼叫 void 型函式下表整理最常用的控制面板項目,建議建立桌面捷徑或批次檔,一鍵直達:
| 功能 | 命令列 | 說明 |
|---|---|---|
| 控制面板主頁 | rundll32.exe shell32.dll,Control_RunDLL | 等同「開始→設定→控制面板」 |
| 輔助功能選項 | rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1 | 鍵盤/聲音/顯示/滑鼠/一般 分頁直接跳轉(1~5) |
| 新增硬體精靈 | rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1 | @1=新增硬體,@0=系統內容「一般」分頁 |
| 新增印表機精靈 | rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter | 直接啟動印表機安裝精靈 |
| 新增/移除程式 | rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1 | ,,1=安裝/解除安裝,,,2=Windows 元件,,,3=啟動磁碟 |
| 日期/時間 | rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0 | ,,0=日期時間,,,1=時區 |
| 顯示內容 | rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0 | ,,0=桌面背景,,,1=螢幕保護,,,2=外觀,,,3=設定 |
| 字型資料夾 | rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL FontsFolder | 或 rundll32.exe shell32.dll,Control_RunDLL main.cpl @3 |
| 滑鼠屬性 | rundll32.exe shell32.dll,Control_RunDLL main.cpl @0 | @0=滑鼠,@1=鍵盤(速度/語言),@2=印表機,@3=字型,@4=輸入法 |
| 遊戲控制器 | rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,0 | ,,0=一般,,,1=進階 |
| 多媒體/聲音 | rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0 | ,,0=音訊,,,1=視訊,,,2=MIDI,,,3=CD 音樂,,,4=裝置;@1 直接開聲音 |
| 網路連線 | rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl | 開啟網路連線資料夾 |
| 電源選項 | rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl | 筆電/桌機電源管理 |
| 系統內容 | rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0 | ,,0=一般,,,1=裝置管理員,,,2=硬體設定檔,,,3=效能 |
| 撥號/電話 | rundll32.exe shell32.dll,Control_RunDLL telephon.cpl | 撥號屬性/地區設定 |
| 主題/桌面佈景 | rundll32.exe shell32.dll,Control_RunDLL themes.cpl | 桌面主題設定 |
| 區域選項 | rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0 | ,,0=地區,,,1=數字,,,2=貨幣,,,3=時間,,,4=日期 |
| ODBC 資料來源 | rundll32.exe shell32.dll,Control_RunDLL odbccp32.cpl | 32 位元 ODBC 管理員 |
| 密碼/使用者帳號 | rundll32.exe shell32.dll,Control_RunDLL password.cpl | 舊版使用者帳號管理(XP/2003) |
| 功能 | 命令列 | 說明 |
|---|---|---|
| 強制關機 | rundll32.exe user.exe,ExitWindows | 立即關閉所有程式並關機(不等待) |
| 強制重啟 | rundll32.exe user.exe,RestartWindows | 立即重啟 |
| 建立公文包 | rundll32.exe syncui.dll,Briefcase_Create | 桌面建立「我的公文包」 |
| 磁碟複製 | rundll32.exe diskcopy.dll,DiskCopyRunDll | 開啟磁碟複製對話框(軟碟時代遺物) |
| 建立捷徑 | rundll32.exe appwiz.cpl,NewLinkHere %1 | %1 為目標路徑,可用於右鍵選單擴充 |
| 安裝螢幕保護 | rundll32.exe desk.cpl,InstallScreenSaver file.scr | 指定 .scr 檔並開啟屬性 |
| 列印 HTML | rundll32.exe mshtml.dll,PrintHTML "C:\path\file.html" | 無需開啟瀏覽器直接列印 |
| 撥號連線 | rundll32.exe rnaui.dll,RnaDial "連線名稱" | 直接撥號或顯示狀態 |
| 新增撥號連線 | rundll32.exe rnaui.dll,RnaWizard | 啟動新增連線精靈 |
| 格式化磁碟 | rundll32.exe shell32.dll,SHFormatDrive | 開啟格式化對話框(支援軟碟/USB) |
| 開啟「打開方式」 | rundll32.exe shell32.dll,OpenAs_RunDLL "檔案完整路徑" | 為無關聯檔案指定開啟程式 |
Rundll32 最大價值在於讓應用程式以極簡代碼調用系統內建 UI,避免繁複的 COM/Win32 API 宣告。
' 重啟電腦
Shell "rundll32.exe user.exe,RestartWindows"
' 開啟「新增/移除程式」
Shell "rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1"
' 開啟顯示內容「螢幕保護」分頁
Shell "rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1"
using System.Diagnostics;
Process.Start("rundll32.exe", "shell32.dll,Control_RunDLL powercfg.cpl");
// 等同 Process.Start("control.exe", "powercfg.cpl"),但 rundll32 更輕量
// 使用 ShellExecute 同樣可呼叫 rundll32
ShellExecute(NULL, "open", "rundll32.exe",
"shell32.dll,Control_RunDLL sysdm.cpl,,1",
NULL, SW_SHOWNORMAL);
@echo off
:: 建立「關機」捷徑於桌面
echo Set oWS = WScript.CreateObject("WScript.Shell") > %temp%\createshortcut.vbs
echo sLinkFile = oWS.SpecialFolders("Desktop") ^& "\關機.lnk" >> %temp%\createshortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %temp%\createshortcut.vbs
echo oLink.TargetPath = "rundll32.exe" >> %temp%\createshortcut.vbs
echo oLink.Arguments = "user.exe,ExitWindows" >> %temp%\createshortcut.vbs
echo oLink.Description = "一鍵關機" >> %temp%\createshortcut.vbs
echo oLink.Save >> %temp%\createshortcut.vbs
cscript //nologo %temp%\createshortcut.vbs
del %temp%\createshortcut.vbs
事實上,control.exe 才是官方建議的控制面板啟動器:
control.exe desk.cpl // 顯示內容
control.exe desk.cpl,,1 // 直接跳到螢幕保護分頁
control.exe appwiz.cpl,,2 // Windows 元件
control.exe sysdm.cpl,,3 // 系統內容→效能
但 rundll32.exe shell32.dll,Control_RunDLL ... 在某些精簡版/PE 環境下 control.exe 缺失時仍能運作,兼容性更強。
系統 DLL 中匯出的 Control_RunDLL 接受 cpl 檔名與分頁索引。若想探索未文件化的功能,可用 dumpbin /exports shell32.dll 或 Dependency Walker 查看匯出函式。
將常用命令建立為 .bat 或 .cmd 放入 PATH 目錄(如 C:\Windows),即可在「執行」直接輸入指令名稱啟動。例如建立 cpl.bat:
@rundll32.exe shell32.dll,Control_RunDLL %1.cpl %2 %3
之後 Win+R → cpl desk 1 即開啟螢幕保護設定。
rundll32.exe mshtml.dll,PrintHTML "D:\My Docs\test.html"C:\Windows\System32\rundll32.exe 為 64 位元,C:\Windows\SysWOW64\rundll32.exe 為 32 位元。呼叫 32 位元 DLL 時需明確指定 SysWOW64 版本rundll32.exe javascript:\..\mshtml,RunHTMLApplication 執行惡意腳本。若發現異常 rundll32.exe 進程(無參數、路徑非 System32、父進程可疑),請立即查殺rundll32.exe user.exe,ExitWindowsrundll32.exe user.exe,RestartWindows%SystemRoot%\System32\shell32.dll 中的電源/重啟圖示Rundll32.exe 是 Windows 系統層極簡、強大的「萬用鑰匙」。掌握其核心語法與常用 Control_RunDLL 參數表,能讓系統管理員、開發人員、進階使用者在無需編寫程式、無需翻選單的情況下,秒開任何控制面板項目、執行系統管理任務、整合進自動化腳本。建議將本文常用指令表匯出為備忘錄,或建立專屬工具箱批次檔,讓這把「內建神器」真正發揮事半功倍的效能。
登錄編輯程式被鎖定?三種解鎖方法快速恢復 Regedit 存取權
Windows XP 20 招超實用技巧:記事本自動記時、快捷方式發信、開始功能表釘選、CapsLock 聲音、回收站加密、Shift 關閉多視窗...
Windows XP 網路與 IE 實用技巧四則:MAC 尋找、JPEG 存檔、未讀郵件、IE 重裝
Windows XP 開機故障診斷與修復:Boot.ini 修復、NTLDR 重建完整教學
Gartner 警告:企業與用戶應避免採用 Windows XP Starter Edition