wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用PyWin32从exe文件加载嵌入的图标?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个用py2exe生成的exe文件.在setup.py中,我指定了一个嵌入在exe中的图标: windows=[{'script': 'my_script.py','icon_resources': [(0, 'my_icon.ico')], ... 我尝试使用以下方法加载图标: hinst = win32api.GetModuleHandle(NonE) hicon = win32gui.L
我有一个用py2exe生成的exe文件.在setup.py中,我指定了一个嵌入在exe中的图标:
windows=[{'script': 'my_script.py','icon_resources': [(0,'my_icon.ico')],...

我尝试使用以下方法加载图标:

hinst = win32api.GetModuleHandle(NonE)
hicon = win32gui.LoadImage(hinst,win32con.IMAGE_ICON,win32con.LR_DEFAULTSIZE)

但这会产生(非常不明确的)错误
pywintypes.error:(0,’LoadImage’,’没有错误消息可用’)

如果我尝试将0指定为字符串

hicon = win32gui.LoadImage(hinst,'0',win32con.LR_DEFAULTSIZE)

然后我得到错误
pywintypes.error:(1813,’在图像文件中找不到指定的资源类型.’)
那么,加载图标的正确方法/语法是什么?
另请注意,我不使用任何GUI工具包 – 只是通过PyWin32的Windows API.

@efoTinis:你是对的.

这是一个解决方法,直到py2exe得到修复,你不想两次包含相同的图标:

hicon = win32gui.CreateIconFromresource(win32api.Loadresource(None,win32con.RT_ICON,1),TruE)

请注意,1不是您在setup.py中提供图标的ID(图标组ID),而是由py2exe自动分配给每个图标组中每个图标的资源ID.至少这是我理解它的方式.

如果要创建具有指定大小的图标(因为CreateIconFromresource使用系统认图标大小),则需要使用CreateIconFromresourceEx,这不是通过PyWin32提供的:

icon_res = win32api.Loadresource(None,1)
hicon = ctypes.windll.user32.CreateIconFromresourceEx(icon_res,len(icon_res),True,0x00030000,16,win32con.LR_DEFAULTCOLOR)

大佬总结

以上是大佬教程为你收集整理的如何使用PyWin32从exe文件加载嵌入的图标?全部内容,希望文章能够帮你解决如何使用PyWin32从exe文件加载嵌入的图标?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。