我的人生路 |
|
|||
日歷
統計
導航常用鏈接留言簿(5)隨筆分類隨筆檔案文章分類文章檔案相冊顏色
搜索最新評論
閱讀排行榜評論排行榜 |
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",再按下回車鍵,這時你將看到,機器被重啟了!怎么樣,是不是很有趣? 當然,Rundll的功能絕不僅僅是重啟你的機器。其實,Rundll者,顧名思義,執行Dll也,它的功能就是以命令列的方式呼叫Windows的動態鏈結庫,Rundll32.exe與Rundll.exe的區別就在於前者是呼叫32位的鏈結庫,而後者是運用於16位的鏈結庫,它們的命令格式是: RUNDLL.EXE ,, 這里要注意三點:1.Dll檔案名中不能含有空格,比如該檔案位於c:/Program Files/目錄,你要把這個路徑改成c:/Progra~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 功能: 顯示指定檔案(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 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,一定會使你的程式設計輕輕松松,達到事半功倍的效果! 巧用Rundll32安裝和卸載Windows程序 在Windows系統中安裝和卸載程序是件非常容易的事情,一般用戶通過安裝和卸載程序向導就能很輕松地完成。但安裝和卸載Windows程序還有些鮮為人知的小技巧,使用Rundll32命令安裝和卸載Windows程序就是其中之一,可能你從來還沒接觸過,下面我們就一起領略它的神奇功能吧! 提示:Rundll32.exe是 Windows系統提供的一個命令, 它用來調用32位的DLL函數(16位的DLL文件用Rundll.exe來調用。DLL文件是Windows的基礎,所有的API函數都是在DLL中實現的,它不能獨立運行,一般由進程加載并調用,運行DLL文件最簡單的方法是利用Rundll32.exe,它的命令格式是“Rundll32.exe 動態鏈接庫名 函數名 參數名”。 1.卸載微軟Java虛擬機 在Windows系統中,要想IE瀏覽器執行包含Java小程序的網頁,必須安裝微軟Java虛擬機(MSJVM),Windows 98/2000已經捆綁了MSJVM,Windows XP/2003中雖然已經剝離了微軟Java虛擬機,但還是可以手工安裝。不過,有個現實我們不得不面對:由于微軟和SUN公司的明爭暗斗,微軟已經停止對MSJVM的開發,因此很多用戶改用SUN公司提供的Java虛擬機。但微軟沒有提供MSJVM的卸載工具,使用Rundll32命令,我們可以輕松卸載MSJVM。 單擊“開始→運行”命令,在“運行”對話框中輸入“RunDll32 advpack.dll,LaunchINFSection java.inf,UnInstall”,回車后系統會打開“Microsoft VM uninstall”對話框,單擊“是(Y)”按鈕后,系統就會開始卸載微軟Java虛擬機,卸載完成后需要重新啟動系統。 接下來刪除“%systemroot%”(即Windows的安裝目錄,Windows 2000系統為 Winnt目錄,Windows XP/2003為Windows目錄)下的Java文件夾;“%systemroot%\inf”下的java.pnf文件,以及“%systemroot%\system32”下的jview.exe文件和wjview.exe文件。最后打開注冊表編輯器,依次展開[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\JavaVM]分支和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\JAVA_VM]分支,刪除這兩個分支下的所有子鍵。 提示:以上方法不適用Windows 98系統。 2.重新安裝Windows XP自帶的IE6.0 Windows系統的IE瀏覽器漏洞很多,最容易出現問題。有時無法解決,就只能重新安裝了。使用Rundll32命令可以很輕松地完成重新安裝工作。我們以重新安裝Windows XP中的IE6.0為例: 首先將Windows XP光盤插入光驅,然后單擊“開始→運行”命令,在“運行”對話框中輸入“Rundll32 setupapi,InstallHinfSection DefaultInstall 132 C:\windows\inf\ie.inf”命令,回車后系統會打開安裝進程對話框,開始重新安裝IE6.0。 提示:如果你的Windows XP系統不是安裝在C盤,請將 “C\Windows\Inf\Ie.inf” 修改為“%systemroot%\inf\ie.inf”。 3.卸載Windows Messenger 卸載Windows Messenger的方法很多,最常用的就是修改“Sysoc.inf”文件,但此方法比較復雜,使用Rundll32命令能很輕松完成卸載: 首先要確保已經關閉了Outlook和IE等Windows自帶的組件,然后單擊“開始→運行”,在“運行”對話框中輸入“RunDll32 advpack.dll,LaunchINFSection %windir%\inf\msmsgs.inf,BLC.Remove”命令,回車后系統會打開一個卸載對話框,單擊“是(Y)”按鈕后,系統就開始卸載Windows Messenger 程序。 以上只是簡單介紹如何使用Rundll32命令卸載和安裝Windows程序的幾個實例,還有很多Windows程序的安裝和卸載可以使用此方法,就不再詳細介紹了,請大家慢慢體會。 轉載(http://blog.china-pub.com/more.asp?name=anstan&id=11612)
歡迎大家訪問我的個人網站 萌萌的IT人
|
![]() |
|
Copyright © 一天一點愛戀 | Powered by: 博客園 模板提供:滬江博客 |