欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » ASP.Net » 正文

热门阅读

C#编程删除系统自带游戏(1)

创建时间:2011年06月12日 23:39  阅读次数:(4738)
分享到:

自从Windows 2000采用了动态缓存目录的保护措施以来,通常用原来的方法在删除系统自带游戏几秒后,游戏又可以使用了。本文介绍了在Visual Studio 2005环境下进行C#编程,来实现显示DllCache目录下的文件,并删除Windows 2000 pro系统自带的四个游戏。

一、界面设计

新建Windows应用程序,在出现的form中添加TreeView、ListView和Button控件各一个,调整到适当的大小,改变button1的text为“删除系统自带程序”,将listview1的view项设置为detail,其余不变。添加三个imagelist控件,分别改名为TreeImageList、TreeViewImageList和ListViewImageList,用于存放引用自系统shell32.dll中的图标。

二、显示DllCache目录及其下面的文件

1.添加使用命名空间和文件结构信息

  1. using System.IO;   
  2. using System.Runtime.InteropServices;   
  3. using System.Reflection;  

2.添加文件结构信息,调用Windows API中的提取图标函数和获取系统路径函数,并构造自定义的提取图标函数。

  1. [StructLayout(LayoutKind.Sequential)]  0 
  2. public struct SHFILEINFO   
  3. public IntPtr hIcon;   
  4. public int iIcon;   
  5. public uint dwAttributes;   
  6. public char szDisplayName;   
  7. public char szTypeName; }   
  8. private System.Windows.Forms.ImageList TreeImageList;   
  9. //获取图标   
  10. [DllImport("Shell32.dll")]   
  11. public static extern int ExtractIcon(IntPtr h, string strx, int ii);   
  12. // 获取系统路径   
  13. [DllImport("Kernel32.dll" ,CharSet = CharSet.Auto)]   
  14. public static extern Int32 GetSystemDirectory(StringBuilder WinDir, Int32 usize);   
  15. //构造自定义提取图标函数   
  16. protected virtual Icon myExtractIcon(string FileName, int iIndex)   
  17. try  
  18. { IntPtr hIcon = (IntPtr) ExtractIcon(this.Handle, FileName, iIndex);   
  19. if (!hIcon.Equals(null))   
  20. { Icon icon = Icon.FromHandle(hIcon);   
  21. return icon; }   
  22. }   
  23. catch (Exception ex)   
  24. { MessageBox.Show(ex.Message, "错误提示", 0, MessageBoxIcon.Error); }   
  25. return null;   
  26. }    

3.在Form构造函数中添加获取图标信息,图标取自shell32.dll。

  1. Icon ic0 = myExtractIcon("%SystemRoot%\\system32\\shell32.dll", 15);   
  2. TreeImageList.Images.Add(ic0);   
  3. Icon ic1 = myExtractIcon("%SystemRoot%\\system32\\shell32.dll", 5);   
  4. TreeImageList.Images.Add(ic1);   
  5. Icon ic2 = myExtractIcon("%SystemRoot%\\system32\\shell32.dll", 7);   
  6. TreeImageList.Images.Add(ic2);   
  7. Icon ic3 = myExtractIcon("%SystemRoot%\\system32\\shell32.dll", 11);   
  8. TreeImageList.Images.Add(ic3);   
  9. Icon ic4 = myExtractIcon("%SystemRoot%\\system32\\shell32.dll", 3);   
  10. TreeImageList.Images.Add(ic4);   
  11. Icon ic5 = myExtractIcon("%SystemRoot%\\system32\\shell32.dll", 4);   
  12. TreeImageList.Images.Add(ic5);   
  13. Icon ic6 = myExtractIcon("%SystemRoot%\\system32\\shell32.dll", 101);   
  14. TreeImageList.Images.Add(ic6);   
  15. Icon ic7 = myExtractIcon("%SystemRoot%\\system32\\shell32.dll", 51);    
    来源:
    说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
    【编辑:Wyf

    打赏

    取消

    感谢您的支持,我会做的更好!

    扫码支持
    扫码打赏,您说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 50+50=? 的结果(结果是:100)
结  果: