系统资源调用和shell32.dll简介

shell32.dll是Windows壳Shell相关应用程序接口动态链接库文件,用于打开网页和文件。一个直观的应用,新建一个文件夹-右键-属性-自定义-更改图标,里面默认的就是SystemRoot%/system32/SHELL32.dll这个文件。选择一个图标就可以为这个文件夹创建一个图标了。 xp下它有近8兆,因为里面有很多资源文件,只要用vs的编辑器打开文件,就能看到所有的图标,图片,对话框,鼠标还有字符串资源。通常人们就是通过修改这些资源来改变操作系统的外观资源的,你可以google一下,围绕这个话题,可以玩出很多花样来。   另外他还包含丰富的api函数,主要是系统、资源等交互的调用。比如System.Windows.Forms.FolderBrowserDialog就是调用了shell32.dll的SHGetSpecialFolderLocation函数。 他的api列表在网上也有参考的,比如一个诸多软件都用得windows风格的关于对话框也是通过它来实现的,代码如下:
[DllImport("shell32.dll", EntryPoint = "ShellAbout")] 

        public static extern int ShellAboutA(int hwnd, string szApp, string 

szOtherStuff, int hIcon); 

        private void button1_Click(object sender, EventArgs e) 

        { 

            ShellAboutA(this.Handle.ToInt32(), "每日一帖", "剪刀发布", 0); 

        } 

另一个调用它的方法是通过rundll32.exe来调用,比如cmd命令提示符中输入:rundll32.exe shell32.dll,ShellAboutA jinjazz 还可以可以调用很多类似的系统对话框或者系统命令,包括注销,关机,重启之类的,参考 http://blog.csdn.net/jinjazz/archive/2008/04/17/2302095.aspx (其中Control_RunDLL 函数是相当牛的)。 此外,他还可以作为com来引用,运行下面代码,就知道他的方便了。
Shell32.ShellClass sh = new Shell32.ShellClass(); 

        sh.Explore(@"c:/"); 
当然你还可以举一反三,比如模拟 "开始菜单-运行" 操作,以前看到过模拟按键的答案,其实用ShellClass就可以解决。 一些比较好的参考资料可以通过网络得到: http://www.codeproject.com/KB/shell/csdoesshell1.aspx http://www.codeproject.com/KB/shell/csdoesshell2.aspx http://www.codeproject.com/KB/shell/csdoesshell3.aspx
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值