Rundll32.exe的小理解



VB中这样一个链接网页的语句:

  Shell "rundll32.exe url.dll,FileProtocolHandler http://baidu.com"

当时对rundll32.exe这个应用程序很陌生,不知道这句代码的功能是怎么实现的。

(按着米老师的发现问题与解决问题的无缝连接的思想还有就是即学式的方法,从网上获取了一些可参考性的知识,下面是我的小总结。)

1.Rundll32.exe是什么?

rundll32.exe跟自身的英文意思一样,是"执行32位的DLL文件"。它的作用是执行DLL文件中的内部函数,功能就是以命令行的方式调用动态链接程序库。

2.Rundll32.exe跟Rundll.exe的区别?

有的系统中是Rundll32.exe文件而也有的系统中是Rundll.exe文件。他们的区别是:Rundll32.exe文件是执行32位的DLL文件(呼叫32位的动态链接库),而Rundll.exe文件是执行16位的Dll文件(呼叫16位的动态链接库)。

3.Rundll32.exe或Rundll.exe的存储目录在哪?

rundll32.exe及Rundll.exe的正常位置:c:\windows\system32,如果不是在这个位置上则很可能是病毒。

(还有一个就是有好多的病毒利用用户粗心这一特点把跟正常文件很相似的东西弄成病毒迷惑用户,比如rundl132.exe就是一个很好的例子,看清楚了,应该是dll32而不是dl132.)

4.Rundll32.exe命令行下的使用方法:

Rundll32.exe DLLname,Functionname [Arguments] 
  DLLname为需要执行的DLL文件名;Functionname为前边需要执行的DLL文件的具体引出函数;[Arguments]为引出函数的具体参数。

例1:在“开始|运行|输入cmd|进入到Dos窗口|键入:

rundll32.exe user.exe,restartwindows |回车”

      运行的结果是电脑重启(注意:尝试前先把其他的程序保存一下哦

例2:rundll32.exe shell32.dll,Control_RunDLL 
         运行的结果是: 显示控制面板

*******特别需要注意的是Control_RunDLL一定要区分大小写(否则就惨了,我被耍了n遍才明白过来的)*********

5.shell函数与rundll32的完美组合。

由于Rundll不能用来呼叫含返回值参数的Dll,例如Win32API中的 GetUserName(),GetTextFace()等。在Visual Basic中,提供了一条执行外部程式的指令Shell,格式为: 
  Shell “命令列”

  如果能配合Rundll32.exe用好Shell指令,会使VB程式拥有用其他方法难以甚至无法实现的效果:仍以重启为例,传统的方法需要你在VB工程中先建立一个模块,然后写入WinAPI的声明,最后才能在程式中呼叫。而现在只需一句: 
  Shell “rundll32.exe user.exe,restartwindows”     就搞定了!

**************************************************************************************************

后记:从参考资料上能够看到,rundll的功能应该很强大,跟shell函数结合起来用的话Vb中的代码不知道要省多少行,这仅仅是一点皮毛的小理解而已,希望大家也能注意到它,一块研究 ,一块用,一起提高,呵呵!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值