zoukankan      html  css  js  c++  java
  • 系统资源调用和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
  • 相关阅读:
    使用Wireshark捕捉USB通信数据
    simtrace之探秘SIM卡中的世界
    极客DIY:RFID飞贼打造一款远距离渗透利器
    C118+Osmocom-bb+Openbts搭建小型基站
    天猫标的就是虚价,果然败家节啊
    为什么项目的jar包会和tomcat的jar包冲突?
    Spring-JDBC实现Contact的CRUD
    使用maven下载jar包的source和javadoc
    Spring-Context的注解实现依赖注入功能
    [html]三列居中自动伸缩的结构
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6204928.html
Copyright © 2011-2022 走看看