c语言修改文件图标 20
1、如何用c语言获得一个指定路径文件的图标2、如何修改一个文件图标?话说应该是c++也无所谓的...
1、如何用c语言获得一个指定路径文件的图标
2、如何修改一个文件图标?
话说应该是c++也无所谓的 展开
2、如何修改一个文件图标?
话说应该是c++也无所谓的 展开
展开全部
同一类文件(后缀名相同,比如 .txt) 的图标,都是一样的!这个图标,默认就是打开这个文件的应用程序的图标。比如 a.txt 的图标,如果 txt 文件默认用记事本打开(notepad.exe) ,那么 a.txt 的图标就是 notepad.exe 的图标。
当然,你也可以修改txt 类型文件的图标(但是可以仍然用 notepad.exe 打开)。txt 类型文件的图标,其实是保存在注册表里面的。具体位置是:
HKEY_CLASSES_ROOT -> .txt ,找到 txt 类型在注册表里面的类型名,一般为txtfile;
HKEY_CLASSES_ROOT -> txtfile -> DefaultIcon , 这个就是 txt 类型文件的图标了。
当然,你也可以修改txt 类型文件的图标(但是可以仍然用 notepad.exe 打开)。txt 类型文件的图标,其实是保存在注册表里面的。具体位置是:
HKEY_CLASSES_ROOT -> .txt ,找到 txt 类型在注册表里面的类型名,一般为txtfile;
HKEY_CLASSES_ROOT -> txtfile -> DefaultIcon , 这个就是 txt 类型文件的图标了。
更多追问追答
追问
是这样的,我是想通过用c++写一个程序,通过这个程序来修改其他指定文件的图标(以exe文件为例),而不是把所有的exe文件都修改,能否实现?
另外,刚才听你这么一说,对刚才的东西也挺感兴趣的,是不是用刚才的方法可以将所有的TXT文件的图标修改为另外一个?如果可以的话,可否代码实现下?可以的话,追加50分
追答
问题1:修改指定 exe 文件的图标。
还是从注册表入手:
HKEY_CLASSES_ROOT -> .exe ,找到 exe 类型在注册表里面的类型名,一般为 exefile;
HKEY_CLASSES_ROOT -> exefile-> DefaultIcon , 这个目录下有个默认项,值为 “%1”。
也就是说,每个 exe 文件的图标,是【 该 exe 文件本身】里面的包含的第一图标。
顺便说一句,一个 exe 文件里,其实有很多东西的,包括图标,字符串,版本信息等,是经过编译后才以一个文件的形式存在的。
这样问题的答案就清楚了。要修改指定 exe 文件的图标,必须修改 exe 文件本身。具体的说,要把exe 文件里面的第一个图标,替换为指定的图标。
具体的实现细节,水平有限,我也不会,你可以参考其他资料。但是我负责的告诉你,思路就是这样的。这里有个现成的软件,就是有这个思路实现的:
http://www.pc6.com/softview/SoftView_55320.html
问题2:
这个很简单,直接修改注册表就行了。比如修改 txt 类型的文件图标(但是不修改打开 txt 文件的程序),可以修改:
HKEY_CLASSES_ROOT -> txtfile -> DefaultIcon
里面的默认项的值。
比如改为:
C:\WINDOWS\Installer\{90140000-0011-0000-0000-0000000FF1CE}\wordicon.exe,1
上面的这个图标其实就是 word 文件的默认图标啦。
【现在你重启 exeplor.exe 进程】,所有 txt 文件的图标,都是 word 文件的图标了。当然双击还是用 notepad.exe 打开的哦!
展开全部
整体思路如下:
#include <resource.h>
#define ICO_MAIN 0x1000 //图标
ICO_MAIN ICON "Main.ico"
把这三个写在一个资源文件里面(就是.rc的),资源文件再加到工程中,"Main.ico"就是的图标文件,主程序中用:
hIcon=LoadIcon(hInstance,ICO_MAIN);
SendMessage(hWnd,WM_SETICON,ICON_BIG,hIcon);
#include <resource.h>
#define ICO_MAIN 0x1000 //图标
ICO_MAIN ICON "Main.ico"
把这三个写在一个资源文件里面(就是.rc的),资源文件再加到工程中,"Main.ico"就是的图标文件,主程序中用:
hIcon=LoadIcon(hInstance,ICO_MAIN);
SendMessage(hWnd,WM_SETICON,ICON_BIG,hIcon);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询