zoukankan      html  css  js  c++  java
  • windows 文件关联图标的设置方法 (附部分代码)

    windows文件关联图标的查看与设置, 主要是通过注册表实现的.

    举例来说, .cpp文件的关联图标. 

    首先, 打开注册表: HKCR/.cpp, 如下图. 看红框部分, "默认"值, 即是 .cpp的值, 它==VisualStudio.cpp.9.0, 不用管它是什么东东, 我们直接打开 HCR/VisualStudio.cpp.9.0. 看下一幅图.

     

    这里-----, 是VisulaStudio.cpp.9.0, 我们看DefaultIcon, 它就是指定了图标. "默认"值, 就是它的值.

    它的值是: C:\Program Files\Microsoft Visual Studio 9.0\VC\vcpackages\VCProject.dll,2

    即, 它使用 VCProject.dll 中的第3个图标. 我们可以试着改变它, 看是否会改变.cpp的图标.

    注意:

    如果该项下有CurVer项时, 就会忽略 DefaultIcon, 它会去找: HKCR\[CurVer]

    然后使用HKCR\[CurVer]\DefaultIcon中的图标!

     

    所以代码部分是非常好写的....我们要做的, 就是要做得比较人性化, 易用.

    一. 要先提取出当前的图标, 像Windows默认一样, 我们可以把文件VCProject.dll中所有的图标都列出来. 使用 ExtractIcon 函数即可实现.

    然后, 用一个ListView控件, ListView_SetImageList (), 即可将Icon全部显示出来, 然后根据索引2, 再选中2的图标, 这样就做到了显示.

    也可以使用 SHGetFileInfo (...SHGFI_ICON|SHGFI_OPENICON..)进行获取,最好用这种方式,因为有些文件没有被记录到注册表中,这个时候,

    它就会使用“打开程序”索引为0的图标。

     

    二. 用GetOpenFileName去获取一个DLL/EXE或ICON文件, 如果是DLL/EXE, 就用[一]的方法进行显示, 并由用户去选择Index.

    注意,如果是.ico文件,那么也要在最后加0,如: C:\a.ico,0

     

    三. 使用用户选择的文件及索引, 直接进行设置注册表.

     

    四. 使用 SHChangeNotify 进行更新界面图标.

     

    五. 完成.

  • 相关阅读:
    Android.mk高级写法
    Android Bitmap和Canvas学习笔记
    cocos2dx 3.x 开发环境搭建
    quick cocos2d-x 2.2.4 window环境调试
    Android应用开发相关下载资源(2014/12/14更新)
    quick-cocos2dx-2.2.4环境搭建
    U盘重装Windows系统
    Visual Studio 32位64位的问题和如何编译32位64位工程的问题
    使用UE4.16开发Oculus需要Oculus软件版本高于1.11
    UE4打包程序没有声音-需要安装UE4PrereqSetup_x64.exe
  • 原文地址:https://www.cnblogs.com/lin1270/p/2299136.html
Copyright © 2011-2022 走看看