查看單個文章
舊 2006-08-06, 01:53 PM   #13 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

Rundll32.exe使用方法大全

winexec(Pchar('StrCommand'),sw_Show);
其中StrCommand代表以下命令之一(使用Windows中的執行不要加引號):
rundll32 shell32,Control_RunDLL - 執行控制台
rundll32 shell32,OpenAs_RunDLL - 打開打開方式視窗
rundll32 shell32,ShellAboutA Info-Box - 打開關於視窗
rundll32 shell32,Control_RunDLL desk.cpl - 打開顯示內容視窗
rundll32 user,cascadechildwindows - 層疊全部視窗
rundll32 user,tilechildwindows - 最小化所有的子視窗
rundll32 user,repaintscreen - 重新整理桌面
rundll32 shell,shellexecute Explorer - 重新執行Windows Explorer
rundll32 keyboard,disable - 鎖寫鍵盤
rundll32 mouse,disable - 讓滑鼠失效
rundll32 user,swapmousebutton - 交換滑鼠按擊
rundll32 user,setcursorpos - 設置滑鼠位置為(0,0)
rundll32 user,wnetconnectdialog - 打開映射網路驅動器視窗
rundll32 user,wnetdisconnectdialog - 打開離線網路驅動器視窗
rundll32 user,disableoemlayer - 顯示BSOD視窗, (BSOD) = Blue Screen Of Death, 即藍底白字畫面
rundll32 diskcopy,DiskCopyRunDll - 打開磁碟複製視窗
rundll32 rnaui.dll,RnaWizard - 執行Internet連接嚮導, 如果加上參數1則為silent模式
rundll32 shell32,SHFormatDrive - 打開格式化磁碟(A)視窗
rundll32 shell32,SHExitWindowsEx -1 - 冷啟動Windows Explorer
rundll32 shell32,SHExitWindowsEx 1 - 關機
rundll32 shell32,SHExitWindowsEx 0 - 退當前用戶
rundll32 shell32,SHExitWindowsEx 2 Windows9x 快速重啟
rundll32 krnl386.exe,exitkernel - 強行退出Windows 9x(無確認)
rundll rnaui.dll,RnaDial MyConnect - 執行網路連接交談視窗
rundll32 msprint2.dll,RUNDLL_PrintTestPage - 選擇印表機和印表測試頁
rundll32 user,setcaretblinktime - 設置游標閃爍速度
rundll32 user, setdoubleclicktime - 測試滑鼠雙擊速度
rundll32 sysdm.cpl,InstallDevice_Rundll - 搜索非PnP設備
 控制台中的各項功能

 winexec('rundll32.exe shell32.dll, Control_RunDLL', 9);
 {輔助選項 內容-鍵盤}
 winexec('rundll32.exe shell32.dll, Control_RunDLL access.cpl, 1', 9);
 {輔助選項 內容-聲音}
 winexec('rundll32.exe shell32.dll, Control_RunDLL access.cpl, 2', 9);
 {輔助選項 內容-顯示}
 winexec('rundll32.exe shell32.dll, Control_RunDLL access.cpl, 3', 9);
 {輔助選項 內容-滑鼠}
 winexec('rundll32.exe shell32.dll, Control_RunDLL access.cpl, 4', 9);
 {輔助選項 內容-一般}
 winexec('rundll32.exe shell32.dll, Control_RunDLL access.cpl, 5', 9);
 {新增刪除程式 內容-安裝卸載}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Appwiz.cpl, 1', 9);
 {新增刪除程式 內容-Windows安裝程式}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Appwiz.cpl, 2', 9);
 {新增刪除程式 內容-啟動碟}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Appwiz.cpl, 3', 9);
 {顯示 內容-背景}
 winexec('rundll32.exe shell32.dll, Control_RunDLL desk.cpl, 0', 9); 
 {顯示 內容-螢幕保護程式}
 winexec('rundll32.exe shell32.dll, Control_RunDLL desk.cpl, 1', 9);
 {顯示 內容-外觀}
 winexec('rundll32.exe shell32.dll, Control_RunDLL desk.cpl, 2', 9);
 {顯示 內容-設置}
 winexec('rundll32.exe shell32.dll, Control_RunDLL desk.cpl, 3', 9);
 {Internet 內容-一般}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 0', 9);
 {Internet 內容-安全}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 1', 9);
 {Internet 內容-內容}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 2', 9);
 {Internet 內容-連接}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 3', 9);
 {Internet 內容-程式}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 4', 9);
 {Internet 內容-高階}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 5', 9);
 {區域設置 內容-區域設置}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 0', 9);
 {區域設置 內容-數位}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 1', 9);
 {區域設置 內容-貨幣}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 2', 9);
 {區域設置 內容-時間}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 3', 9);
 {區域設置 內容-日期}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 4', 9);
 
 winexec('rundll32.exe shell32.dll, Control_RunDLL Joy.cpl, 0', 9);
 
 winexec('rundll32.exe shell32.dll, Control_RunDLL Joy.cpl, 1', 9);
 {滑鼠 內容}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Main.cpl', 9);
 {多媒體 內容-音頻}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 0', 9);
 {多媒體 內容-視頻}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 1', 9);
 {多媒體 內容-MIDI}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 2', 9);
 {多媒體 內容-CD音樂}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 3', 9);
 {多媒體 內容-設備}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 4', 9);
 {調製解調器 內容}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Modem.cpl', 9);
 
 winexec('rundll32.exe shell32.dll, Control_RunDLL Netcpl.cpl', 9);
 {密碼 內容}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Password.cpl', 9);
 {掃瞄儀與數位相機 內容}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Sticpl.cpl', 9);
 {系統 內容-一般}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Sysdm.cpl, 0', 9);
 {系統 內容-設備管理器}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Sysdm.cpl, 1', 9);
 {系統 內容-硬體配置文件}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Sysdm.cpl, 2', 9);
 {系統 內容-性能}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Sysdm.cpl, 3', 9);
 {日期時間 內容}
 winexec('rundll32.exe shell32.dll, Control_RunDLL timedate.cpl', 9);
 {電源管理 內容}
 winexec('rundll32.exe shell32.dll, Control_RunDLL Powercfg.cpl', 9);
 
 winexec('rundll32.exe shell32.dll, Control_RunDLL Telephon.cpl', 9);
關於呼叫後的判斷處理建議:
先聲明一個cardinal類型的變數RtnCardinal獲取返回值進行判斷如:
RtnCardinal = winexec('rundll32.exe shell32.dll, Control_RunDLL Telephon.cpl', 9);
 返回值 可能原因
 0 程式超出記憶體 
ERROR_BAD_FORMAT 程式為一個非法的Win32.EXE程式
ERROR_FILE_NOT_FOUND 指定文件沒找到 
ERROR_PATH_NOT_FOUND 指定路徑沒找到

使用方法:
點擊「開始-程式-Ms-Dos方式」,進入Dos視窗,然後鍵入rundll32.exe user.exe,restartwindows,再按下Enter鍵鍵,這時你將看到,機器被重啟了!怎麼樣,是不是很有趣?
  當然,Rundll的功能絕不僅僅是重啟你的機器。其實,Rundll者,顧名思義,執行Dll也,它的功能就是以命令列的方式呼叫Windows的動態鏈結庫,Rundll32.exe與Rundll.exe的區別就在於前者是呼叫32位的鏈結庫,而後者是運用於16位的鏈結庫,它們的命令格式是:
  RUNDLL.EXE ,,
  這裡要注意三點:1.Dll檔案名中不能含有空格,比如該檔案位於cProgram Files目錄,你要把這個路徑改成cProgra~1;2.Dll檔案名與Dll入口點間的逗號不能少,否則程式將出錯並且不會給出任何資訊!3.這是最重要的一點:Rundll不能用來呼叫含返回值參數的Dll,例如Win32API中的GetUserName(),GetTextFace()等。在Visual Basic中,提供了一條執行外部程式的指令Shell,格式為:
  Shell 「命令列」
  如果能配合Rundll32.exe用好Shell指令,會使您的VB程式擁有用其他方法難以甚至無法實現的效果:仍以重啟為例,傳統的方法需要你在VB工程中先建立一個模組,然後寫入WinAPI的聲明,最後才能在程式中呼叫。而現在只需一句
  Shell 「rundll32.exe user.exe,restartwindows」就搞定了!是不是方便多了?
  實際上,Rundll32.exe在呼叫各種Windows控制台和系統選項方面有著獨特的優勢。下面,我就將本人在因特網上收集的有關Rundll的指令列舉如下(很有用的,能省去你很多呼叫Windows API的時間!!),供大家在程式設計中引用:
  命令列 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,,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 @3
  功能 顯示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
功能 顯示指定檔案(drivepathfilename)的「打開方式」交談視窗。
  命令列 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 user.exe,restartwindows
  功能 強行關閉所有程式並重啟機器。
  命令列 rundll32.exe user.exe,exitwindows
  功能 強行關閉所有程式並關機。
  命令列 rundll32.exe shell32.dll,Control_RunDLL telephon.cpl
  功能 顯示「撥號內容」選項視窗
  命令列 rundll32.exe shell32.dll,Control_RunDLL themes.cpl
  功能 顯示「桌面主旨」選項面板
  
當然,不止是VisualBasic,像Delphi.VisualC++等其他程式設計語言也可以通過呼叫外部命令的方法來使用Rundll的這些功能,具體方法這裡就不再詳細敘述了。靈活的使用Rundll,一定會使你的程式設計輕輕鬆鬆,達到事半功倍的效果!
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次