常用Windows9x的朋友一定對(duì)Rundll32.exe和Rundll.exe這兩個(gè)文件不會(huì)陌生吧,不過,由于這兩個(gè)程序的功能原先只限于在微軟內(nèi)部使用,因而真正知道如何使用它們的朋友想必不多。那么好,如果你還不清楚的話,那么就讓我來告訴你吧。
首先,請(qǐng)你做個(gè)小實(shí)驗(yàn)(請(qǐng)事先保存好你正在運(yùn)行的程序的結(jié)果,否則...):點(diǎn)擊“開始-程序-Ms-Dos方式”,進(jìn)入Dos窗口,然后鍵入"rundll32.exe user.exe,restartWindows",再按下回車鍵,這時(shí)你將看到,機(jī)器被重啟了!怎么樣,是不是很有趣?
當(dāng)然,Rundll的功能絕不僅僅是重啟你的機(jī)器。其實(shí),Rundll者,顧名思義,運(yùn)行Dll也,它的功能就是以命令行的方式調(diào)用Windows的動(dòng)態(tài)鏈接庫,Rundll32.exe與Rundll.exe的區(qū)別就在于前者是調(diào)用32位的鏈接庫,而后者是運(yùn)用于16位的鏈接庫,它們的命令格式是:
RUNDLL.EXE ,<入口點(diǎn)>,<調(diào)用參數(shù)>
這里要注意三點(diǎn):1.Dll文件名中不能含有空格,比如該文件位于c:\Program Files\目錄,你要把這個(gè)路徑改成c:\Progra~1\;2.Dll文件名與Dll入口點(diǎn)間的逗號(hào)不能少,否則程序?qū)⒊鲥e(cuò)并且不會(huì)給出任何信息!3.這是最重要的一點(diǎn):Rundll不能用來調(diào)用含返回值參數(shù)的Dll,例如Win32API中的GetUserName(),GetTextFace()等。在Visual Basic中,提供了一條執(zhí)行外部程序的指令Shell,格式為:
Shell “命令行”
如果能配合Rundll32.exe用好Shell指令,會(huì)使您的VB程序擁有用其他方法難以甚至無法實(shí)現(xiàn)的效果:仍以重啟為例,傳統(tǒng)的方法需要你在VB工程中先建立一個(gè)模塊,然后寫入WinAPI的聲明,最后才能在程序中調(diào)用。而現(xiàn)在只需一句:
Shell “rundll32.exe user.exe,restartwindows”就搞定了!是不是方便多了?
實(shí)際上,Rundll32.exe在調(diào)用各種Windows控制面板和系統(tǒng)選項(xiàng)方面有著獨(dú)特的優(yōu)勢(shì)。下面,我就將本人在因特網(wǎng)上收集的有關(guān)Rundll的指令列舉如下(很有用的,能省去你很多調(diào)用Windows API的時(shí)間!!),供大家在編程中引用:
命令行: rundll32.exe shell32.dll,Control_RunDLL
功能: 顯示控制面板
命令行: rundll32.exe shell32.dll,Control_RunDLL Access.cpl,,1
功能: 顯示“控制面板-輔助選項(xiàng)-鍵盤”選項(xiàng)窗口
命令行: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2
功能: 顯示“控制面板-輔助選項(xiàng)-聲音”選項(xiàng)窗口
命令行: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3
功能: 顯示“控制面板-輔助選項(xiàng)-顯示”選項(xiàng)窗口
命令行: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4
功能: 顯示“控制面板-輔助選項(xiàng)-鼠標(biāo)”選項(xiàng)窗口
命令行: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5
功能: 顯示“控制面板-輔助選項(xiàng)-常規(guī)”選項(xiàng)窗口
命令行: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1
功能: 運(yùn)行“控制面板-添加新硬件”向?qū)А?BR> 命令行: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter
功能: 運(yùn)行“控制面板-添加新打印機(jī)”向?qū)А?BR>
首先,請(qǐng)你做個(gè)小實(shí)驗(yàn)(請(qǐng)事先保存好你正在運(yùn)行的程序的結(jié)果,否則...):點(diǎn)擊“開始-程序-Ms-Dos方式”,進(jìn)入Dos窗口,然后鍵入"rundll32.exe user.exe,restartWindows",再按下回車鍵,這時(shí)你將看到,機(jī)器被重啟了!怎么樣,是不是很有趣?
當(dāng)然,Rundll的功能絕不僅僅是重啟你的機(jī)器。其實(shí),Rundll者,顧名思義,運(yùn)行Dll也,它的功能就是以命令行的方式調(diào)用Windows的動(dòng)態(tài)鏈接庫,Rundll32.exe與Rundll.exe的區(qū)別就在于前者是調(diào)用32位的鏈接庫,而后者是運(yùn)用于16位的鏈接庫,它們的命令格式是:
RUNDLL.EXE ,<入口點(diǎn)>,<調(diào)用參數(shù)>
這里要注意三點(diǎn):1.Dll文件名中不能含有空格,比如該文件位于c:\Program Files\目錄,你要把這個(gè)路徑改成c:\Progra~1\;2.Dll文件名與Dll入口點(diǎn)間的逗號(hào)不能少,否則程序?qū)⒊鲥e(cuò)并且不會(huì)給出任何信息!3.這是最重要的一點(diǎn):Rundll不能用來調(diào)用含返回值參數(shù)的Dll,例如Win32API中的GetUserName(),GetTextFace()等。在Visual Basic中,提供了一條執(zhí)行外部程序的指令Shell,格式為:
Shell “命令行”
如果能配合Rundll32.exe用好Shell指令,會(huì)使您的VB程序擁有用其他方法難以甚至無法實(shí)現(xiàn)的效果:仍以重啟為例,傳統(tǒng)的方法需要你在VB工程中先建立一個(gè)模塊,然后寫入WinAPI的聲明,最后才能在程序中調(diào)用。而現(xiàn)在只需一句:
Shell “rundll32.exe user.exe,restartwindows”就搞定了!是不是方便多了?
實(shí)際上,Rundll32.exe在調(diào)用各種Windows控制面板和系統(tǒng)選項(xiàng)方面有著獨(dú)特的優(yōu)勢(shì)。下面,我就將本人在因特網(wǎng)上收集的有關(guān)Rundll的指令列舉如下(很有用的,能省去你很多調(diào)用Windows API的時(shí)間!!),供大家在編程中引用:
命令行: rundll32.exe shell32.dll,Control_RunDLL
功能: 顯示控制面板
命令行: rundll32.exe shell32.dll,Control_RunDLL Access.cpl,,1
功能: 顯示“控制面板-輔助選項(xiàng)-鍵盤”選項(xiàng)窗口
命令行: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2
功能: 顯示“控制面板-輔助選項(xiàng)-聲音”選項(xiàng)窗口
命令行: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3
功能: 顯示“控制面板-輔助選項(xiàng)-顯示”選項(xiàng)窗口
命令行: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4
功能: 顯示“控制面板-輔助選項(xiàng)-鼠標(biāo)”選項(xiàng)窗口
命令行: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5
功能: 顯示“控制面板-輔助選項(xiàng)-常規(guī)”選項(xiàng)窗口
命令行: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1
功能: 運(yùn)行“控制面板-添加新硬件”向?qū)А?BR> 命令行: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter
功能: 運(yùn)行“控制面板-添加新打印機(jī)”向?qū)А?BR>

