RUNDLL32.EXE(執行 32 位 DLL)與 RUNDLL.EXE(16 位)是 Windows 以命令列呼叫 DLL 匯出函數的核心機制。深度解析:
void CALLBACK FunctionName(HWND hwnd, HINSTANCE hinst, LPTSTR lpCmdLine, int nCmdShow);
Rundll32.exe DLLname,Functionname [Arguments]
注意:DLL 路徑不可含空格 (用短檔名如 Progra~1);DLL名與函數名間逗號不可省略;**不支援有回傳值的函數** (如 GetUserName)。
Shell "rundll32.exe user.exe,restartwindows" ' 一行重開機,免寫 API 宣告
| 指令 | 功能 |
|---|---|
| rundll32.exe shell32.dll,Control_RunDLL | 開啟控制面板 |
| rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1~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~3 | 新增/移除程式:安裝移除/Windows 元件/啟動碟 |
| rundll32.exe syncui.dll,Briefcase_Create | 建立我的公文包 |
應用場景:批次檔自動化設定、捷徑建立快速存取控制面板項目、VB/VBA 程式呼叫系統功能無需宣告 API。掌握 RUNDLL32 等於掌握 Windows 圖形介面的命令列入口。