如何在创建文件时设置图标文件

时间:2010-02-25 04:41:00

标签: python wxpython

我正在创建一个tar文件(来自几个文件),现在在保存这个tar文件的时候我将这个文件保存为我的特定扩展名(.xyz),所以我希望每当我保存这个类型文件(.xyz扩展名)时我的工具此文件应使用特定的ico文件格式保存。这类似于我们从mspaint保存bmp或jpeg文件时,它们以图标文件格式保存。

由于

1 个答案:

答案 0 :(得分:1)

要将图标与您的扩展程序相关联,您必须为其创建一个注册表项,并且与扩展程序相关联的图标并不意味着什么,除非您将某个程序与您打开它关联,您也可以在注册表中执行此操作例如

  1. 为您的计划的图标名称创建一个条目,例如 HKCU \ Software \ Classes下\ myprog.file.xyz

  2. HKCU \ Software \ Classes \ myprog.file.xyz下的
  3. 为默认图标创建enteries HKCU \ Software \ Classes下\ myprog.file.xyz \的DefaultIcon

    在这里,您可以提供图标或应用程序的路径,图标将从资源中获取

  4. 如果您希望扩展程序正确打开,请为Open和其他命令创建一个条目 例如HKCU \ Software \ Classes下\ myprog.file.xyz \壳牌\打开\命令 并输入您的程序或任何其他程序的路径

    同样可以添加查看/打印等命令

  5. 现在你必须告诉注册表扩展名.xyz应该使用来自HKCU \ Software \ Classes \ myprog.file.xyz的信息 所以创建一个条目 HKCU \ Software \ Classes.xyz = myprog.file.xyz

  6. 实际上如果你希望你可以直接在HKCU \ Software \ Classes.xyz中输入1-3,但这种重定向是更好的做事方式。 因为现在你可以简单地将myprog.file.xyz分配给许多extrnsions,例如.xxx,.yyy或.zzz等

    现在使用python模块_winreg(http://docs.python.org/library/_winreg.html)你可以编程地创建所有这些enteries。 例如此脚本将xyz设置为python图标

    from _winreg import *
    
    xyzKey = CreateKey(HKEY_CLASSES_ROOT, ".xyz")
    SetValue(xyzKey, None, REG_SZ, "MyTest.xyz")
    CloseKey(xyzKey)
    
    myTestKey = CreateKey(HKEY_CLASSES_ROOT, "MyTest.xyz")
    iconKey= CreateKey(myTestKey, "DefaultIcon")
    CloseKey(myTestKey)
    
    SetValue(iconKey, None, REG_SZ, "D:\\Python25\\python.exe")
    CloseKey(iconKey)