在VisualBasic中使用Rundll32.exe和Rundll.exe
经常使用Windows9x的朋友一定很熟悉Rundll32.exe和Rundll.exe文件。不过由于这两个程序的功能原本仅限于微软内部使用,所以真正懂得使用的朋友肯定不多。如果你不知道,我来告诉你。
首先请做一个小实验(请提前保存你正在运行的程序的结果,否则...):点击“开始-程序-MS-Dos模式”,进入Dos窗口,然后输入“rundll32.exeuser.exe,重启windows”,再按回车键,这时你会看到机器已经重启了!怎么样?是不是很有意思?
当然Rundll的作用不仅仅是重启你的机器。其实Rundll顾名思义就是运行dll,它的作用是通过命令行调用Windows的动态链接库。Rundll32.exe和Rundll.exe的区别在于,前者调用32位链接库,而后者应用16位链接库。他们的命令格式是:
RUNDLL.EXE,,
这里需要注意三点:1.Dll的文件名不能包含空。例如,该文件位于c:\Program Files\目录中,因此您应该将该路径更改为C:\ progra ~ 1 \;Dll的文件名和Dll入口点之间的逗号不能少,否则程序会出错,不会给出任何信息!3.这是最重要的一点:Rundll不能用来调用带有返回值参数的dll,比如Win32API中的GetUserName()、GetTextFace()等等。在Visual Basic中,用于执行外部程序的指令外壳以下列格式提供:
Shell“命令行”
如果你能很好的利用Shell指令配合Rundll32.exe,你的VB程序将会有其他方法很难甚至不可能达到的效果:仍然以重启为例,传统的方法需要你先在VB项目中构建一个模块,然后编写WinAPI的声明,最后在程序中调用。现在只要说:
shell“rundll32 . exe user.exe,重启windows”完成了!是不是方便多了?
实际上,Rundll32.exe在调用各种Windows控制面板和系统选项方面有独特的优势。下面,我将我在网上搜集到的关于Rundll的指令列举如下(非常有用,可以让你在调用Windows API的时候节省很多时间!!),供编程时参考:
命令行:rundll32.exe·shell32.dll
功能:显示控制面板
命令行:rundll32.exe·shell32.dll
功能:显示“控制面板-辅助选项-键盘”选项窗口
命令行:rundll32.exe·shell32.dll
功能:显示“控制面板-辅助选项-声音”的选项窗口
命令行:rundll32.exe·shell32.dll
功能:显示“控制面板-辅助选项-显示”的选项窗口
命令行:rundll32.exe·shell32.dll
功能:显示“控制面板-辅助选项-鼠标”选项窗口
命令行:rundll32.exe·shell32.dll
功能:显示“控制面板-辅助选项-常规”选项窗口
命令行:rundll32.exe shell32.dll,control _ rundllsysdm.cpl @ 1
功能:运行“控制面板-添加新硬件”向导。
命令行:rundll32.exe·shell32.dll
功能:运行“控制面板-添加新打印机”向导。
0条评论