如何自已做Windows资源管理器(关键是如何获取桌面.我的电脑的图标) 拷屏,到photoshop里修改。是这样码? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 C# FileInfo vs API SHGetFileInfohttp://www.dotnet247.com/247reference/msgs/19/97078.aspx 图标都在Explorer.exe中,找个抓图标的工具取出来就行了. net_lover和chainet: 这样只能获取静态图标。但Win98和WinXP中的图标是不同的。FindCsdnToDay: 这个函数是可以获取图标。但是不知如何取得这个函数的第一个Pidl参数。 http://www.csdn.net/develop/article/15/15949.shtm是一个人写的资源管理器源代码,你可以借鉴.关于API函数SHGetFileInfo的用法你可以参照代码里的方式,然后对Explorer.exe取里面的图标即可. chainet: 虽然他这种方法可以获取图标。但不能获取每个目录下有些什么东西。如桌面目录下有 我的电脑.网上邻居.我的文件夹等。 本人得知好象要用一个IShellFolder的接口.本人正在研究. 取图标的另一种方法(但仍不能获取每个目录下有些什么东西)DllImport("shell32.dll")] private static extern IntPtr ExtractIcon(IntPtr hInst,string lpszExeFileName,int nIconIndex);[DllImport("user32.dll")] private static extern long DrawIcon(IntPtr hdc,int x,int y,IntPtr hIcon);private void ShowIcon(string file, int num){ this.Text = filename; IntPtr x1 = ExtractIcon(this.Handle,file,num); this.Refresh(); Graphics g = CreateGraphics(); IntPtr hdc = g.GetHdc(); long x2 = DrawIcon(hdc,10,10,x1); g.ReleaseHdc(hdc); g.Dispose();} 谢谢chainet一直对本问题的关注。本人正在研究IShellFolder接口。如有结果。将告知大家 AngelGavin: 请问你是怎么遍历的.是通过接口IEnumIDList吗? 我是用System.IO.DirectoryInfo取得文件夹,再用递归取得子文件夹,然后一个一个输出,挺痛苦的应该怎么做才能效率高啊IEnumIDList能做什么啊? AngelGavin: IEnumIDList能枚举一个目录下的所有子目录(包括网络邻居.我的电脑等)我是用SHGetDesktopFolder获取IShellFolder,然后有IShellFolder.EnumObjects来获取IEnumIDList接口。以上都没问题。但当用IEnumIDList。Next枚举目录时出现"未将对象引用设置到对象实例",本人百思不得其解。还望高手指教。谢谢! 不知是否是IEnumIDList接口声明有问题。如果有谁知道有关接口声明的任何资料或有关介绍请告知。本人将不胜感激。先谢了. ms-help://MS.VSCC/MS.MSDNVS.2052/shellcc/platform/Shell/IFaces/IEnumIDList/IEnumIDList.htm 用PHOTSHOP做一个,然后再调用啊!呵呵~~~~~~~ chainet: 这个我看了几遍了。这是VC++的声明方式。我把它改成了C#的声明方式。不知是否改错了没有。因为上网不方便,我现只把IEnumIDList接口的Next函数声明写出来。请各位看一下有没有错。 [PreserveSig]int Next(ulong celt,ref IntPtr reglt,ref ulongpcelt) E:\ware\Microsoft Visual Studio .NET\Common7\Graphics\icons这个目录下有许多图标其中的win95目录中有我的电脑,网上邻居等图标,呵呵 研究了很久也不什么原因.百般无赖。只有用C++托管与了一个动态库在C#中可以调用。枚举了桌面上的所有目录和文件。看来只能用C++写了。期待C#代码...... Windows7系统上水晶报表导出word出现程序终止错误 关于UDP协议的的问题? 八百里加急快报.................急急急急急急.... C# 写的程序在别人的机器上打不开 字符转换问题 很简单的问题,帮帮忙! sql统计记录数 求教跟随鼠标灵活显示的对话框 winform中reportviewer代码加载数据源和报表文件 新手紧急求助! 两个已经存在的窗体间如何得到相互对象呢?我不想new,一new就有新窗体产生了 .net制作安装程序能带反安装程序吗
http://www.dotnet247.com/247reference/msgs/19/97078.aspx
这样只能获取静态图标。但Win98和WinXP中的图标是不同的。
FindCsdnToDay:
这个函数是可以获取图标。但是不知如何取得这个函数的第一个Pidl参数。
是一个人写的资源管理器源代码,你可以借鉴.
关于API函数SHGetFileInfo的用法你可以参照代码里的方式,然后对Explorer.exe取里面的图标即可.
虽然他这种方法可以获取图标。但不能获取每个目录下有些什么东西。如桌面目录下有 我的电脑.网上邻居.我的文件夹等。
本人得知好象要用一个IShellFolder的接口.本人正在研究.
DllImport("shell32.dll")]
private static extern IntPtr ExtractIcon(IntPtr hInst,string lpszExeFileName,int nIconIndex);
[DllImport("user32.dll")]
private static extern long DrawIcon(IntPtr hdc,int x,int y,IntPtr hIcon);
private void ShowIcon(string file, int num)
{
this.Text = filename;
IntPtr x1 = ExtractIcon(this.Handle,file,num);
this.Refresh();
Graphics g = CreateGraphics();
IntPtr hdc = g.GetHdc();
long x2 = DrawIcon(hdc,10,10,x1);
g.ReleaseHdc(hdc);
g.Dispose();
}
本人正在研究IShellFolder接口。
如有结果。将告知大家
请问你是怎么遍历的.是通过接口IEnumIDList吗?
然后一个一个输出,挺痛苦的
应该怎么做才能效率高啊
IEnumIDList能做什么啊?
IEnumIDList能枚举一个目录下的所有子目录(包括网络邻居.我的电脑等)我是用SHGetDesktopFolder获取IShellFolder,然后有IShellFolder.EnumObjects来获取IEnumIDList接口。以上都没问题。但当用IEnumIDList。Next枚举目录时出现"未将对象引用设置到对象实例",本人百思不得其解。还望高手指教。谢谢!
然后再调用啊!呵呵~~~~~~~
这个我看了几遍了。这是VC++的声明方式。我把它改成了C#的声明方式。不知是否改错了没有。因为上网不方便,我现只把IEnumIDList接口的Next函数声明写出来。请各位看一下有没有错。
[PreserveSig]int Next(ulong celt,ref IntPtr reglt,ref ulongpcelt)
这个目录下有许多图标
其中的win95目录中有我的电脑,网上邻居等图标,呵呵