首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何用python27提取.msi文件的图标

在Python 2.7中提取.msi文件的图标可以使用pywin32库来实现。以下是一个完整的示例代码:

代码语言:txt
复制
import os
import sys
import win32api
import win32con
import win32gui
import win32ui

def extract_icon_from_msi(msi_file):
    try:
        # 打开.msi文件
        db = win32api.LoadLibraryEx(msi_file, 0, win32con.LOAD_LIBRARY_AS_DATAFILE)
        
        # 获取.msi文件中的图标资源
        icon_index = 0  # 提取第一个图标
        icon_handle = win32api.LoadImage(db, icon_index, win32con.IMAGE_ICON, 0, 0, win32con.LR_DEFAULTSIZE)
        
        # 创建设备上下文
        dc = win32ui.CreateDCFromHandle(win32gui.GetDC(0))
        
        # 创建位图对象
        bmp = win32ui.CreateBitmap()
        bmp.CreateCompatibleBitmap(dc, 32, 32)
        
        # 将图标绘制到位图上
        dc.SelectObject(bmp)
        dc.DrawIcon((0, 0), icon_handle)
        
        # 保存位图到文件
        icon_file = os.path.splitext(msi_file)[0] + ".ico"
        bmp.SaveBitmapFile(dc, icon_file)
        
        return icon_file
    except Exception as e:
        print("提取图标失败:" + str(e))
        return None

# 调用示例
msi_file = "path/to/your.msi"
icon_file = extract_icon_from_msi(msi_file)
if icon_file:
    print("图标提取成功,保存为:" + icon_file)
else:
    print("图标提取失败")

这段代码使用了pywin32库中的一些函数来加载.msi文件并提取其中的图标资源。具体步骤如下:

  1. 使用win32api.LoadLibraryEx函数加载.msi文件作为一个库。
  2. 使用win32api.LoadImage函数从库中获取图标资源的句柄。
  3. 创建一个设备上下文(DC)对象,用于绘制图标。
  4. 创建一个位图对象,并使用win32ui.CreateCompatibleBitmap函数创建一个与设备上下文兼容的位图。
  5. 使用dc.SelectObject函数将位图选入设备上下文。
  6. 使用dc.DrawIcon函数将图标绘制到位图上。
  7. 使用bmp.SaveBitmapFile函数将位图保存为.ico文件。

请注意,这段代码仅适用于Python 2.7,并且需要安装pywin32库。另外,提取图标的过程可能因为.msi文件的结构而有所不同,因此可能需要根据具体情况进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【连载一】:RobotFrameWork环境搭建(基于HTTP协议接口自动化)

,详细可见: Mac-osx上无法安装wxPython解决方案 3安装步骤 3.1 安装python 2.7.9(自带pip) 下载python,双击msi文件安装 https://www.python.org.../ftp/python/2.7.9/python-2.7.9.amd64.msi 注意:安装路径不要有空格,可能会引起pip使用问题 3.2 配置环境变量Path 我电脑 – 右键 – 高级系统设置...– 环境变量 – 编辑path 添加 D:\Python27\;D:\Python27\Scripts\; >如果已安装过strawberry,需将python变量置于strawberry之前,:...time out或者fetch异常时候,请使用豆瓣源安装 windows打开目录%HOMEPATH%\pip 新建文件pip.ini ``` [global] index-url = http://pypi.douban.com...关键字,对json操作相当方便) cmd执行: pip install --upgrade robotframework-httplibrary 注:上面介绍都是最基础用于接口所需要依赖库,使用过程中涉及到一些加密算法库

78920
  • Python安装MySQL库详解(解决Microsoft Visual C++ 9.0 is required )

    前面我们介绍Python网络爬虫通常将抓取数据存储至TXT或CSV文件,而当数据量增加之时,就需要将其存储至本地数据库了。...第一步:安装Python程序 首先安装Python编程环境python-2.7.8.amd64.msi,如下图所示: ? ? 默认安装在C:\python27路径,接下来我需要安装pip工具。...安装成功之后,在Python27文件夹下生成一个Scripts文件夹,包含了pip和easy_install工具,如下图所示,我们可以调用"pip install xxx"命令安装扩展包。 ?...这是驱动问题,这里我下载VCForPython27.msi软件安装。 第五步:安装VCForPython27.msi 双击软件即可安装,如下图所示: ? 安装过程如下图所示: ?...-py2.7.exe文件即可。

    1.7K20

    windows下安装python及第三方库numpy、scipy、matplotlib终极版

    点击其中一个版本进入下一个界面,选择64Windows x86-64 MSI installer或者32位Windows x86 MSI installer进行下载。...二、安装工具包easy_install和pip 进入setuptools · PyPI下载setuptools-34.3.0.zip,解压到C:\Python27\Lib\site-packages目录...pip安装pip,可以把C:\python27\Scripts添加到环境变量,下次进入cmd直接可以用pip来安装第三方库。...2、pip安装scipy 此时用pip install scipy 安装scipy容易出现异常,缺少mkl_rt,openblas,原因是pip默认下载scipy版本(scipy-0.18.1.tar.gz...3、matplotlib安装 执行pip install matplotlib即可,其实刚才提到那个网站里面基本上是python第三方库Scikit-learn等,都可以下载对应版本到python

    2.6K30

    python module manage

    模块在物理形式上表现为以.py结尾代码文件。一个文件被看作一个独立模块,一个模块也可以被看作是一个文件。模块文件名就是模块名字加上扩展名.py。每个模块都有自己名称空间。     ...后续导入操作只不过是提取内存中已加载模块对象。reload可用于重新加载模块。     ...平台相关安装程序:windows上*.msi文件、Linux上常见.rpm、src.rpm和.deb文件等     python eggs:较流行第三方扩展    使用distutils发布模块...格式包            msi: Microsoft Installer        以下专用命令不用为bdist指定参数            bdist_dump:            ...bdist_rpm:            bdist_wininst:            bdist_msi:        获取帮助方式:            python setup.py

    64910

    安装搭建Python2.* 和3.* 环境详细步骤

    win7安装python 在官网python.org点击Download,选择Windows,进入下载页面,根据自己系统下载对应Python安装程序,32位下载X86,64位下载X86-64。....* 安装图解 将python-2.7.11.msi执行文件下载到电脑之后点击安装,特别要注意选上pip和Add python.exe to Path,然后一路点“Next”即可完成安装。...默认会安装到C:\Python27目录下,这里做修改到D盘下; 添加环境变量:点击我电脑—属性—高级系统设置—环境变量—系统变量Path——编辑,添加 D:\Python27 及 D:\Python27...\Scripts,变量之间以分号“;”间隔 注:D:\Python27 是我python安装目录,一般童鞋都放到c盘里;D:\Python27\Scripts这个文件是为pip文件(python包管理工具...;p类似RedHat里面的yum,安装Python包非常方便) python3.* 安装图解 将Python3.* 最新版python-3.6.4-amd64.exe安装文件下载到电脑之后点击安装,

    53540

    【Python基础】08、Python模

    结尾代码文件               一个文件被看作一个独立模块,一个模块也可以被看作是一个文件             模块文件名就是模块名字加上扩展名(.py)            ...,都会产生所得到模块文件属性 注意:  模块只在第一次导入时才会执行如上步骤:               后续导入操作只不过是提取内存中已加载模块对象               reload...windowns上.msi文件,linux上常见.rpm,src.rpm 和.deb文件等       python eggs               较流行第三方扩展 3、使用distutils...格式msi:microsoft installer bdist_dump bdist_rpm bdist_winist bdist_msi 获取帮助方式: python setup.py --help...python setup.py --help-commands    所有可以使用命令,build,install,sdist,bdist python setup.py COMMAND --help

    1.8K10

    明码标价之探索新流程(以MSIpred为例)

    那我这里使用TCGA数据库CRCMAF文件举例,安排给了学徒进行探索,并且整理成为笔记供大家学习: 先介绍一下MSI知识和MAF文件格式: MSI(Microsatellite instability.../ 下面的任务就是要找到一个可以预测MAF文件MSI状态包或者软件 最先找到是一个叫MSIseqR包,分析流程图如下: ?...,我就用2.7.17 conda create -n python27 python=2.7.17 #激活python2小环境 conda activate python27 #安装3个依赖包,一定要加镜像...出现报错基本上都是由于包版本原因,我是按照下面的版本做,没有报错: ? (2)下载CRCMAF文件和reference file TCGA官网下载CRCMAF文件: ?...(predicted_MSI,'CRC_MSI.tsv',sep='\t') #结果文件为CRC_MSI.tsv(70个MSI-H,329个MSS) ?

    1.2K20

    nRF5x系列蓝牙模块DFU升级服务移植 -- 1 工具安装

    release-posix-sjlj-rt_v6-rev0_2.7z,如下图所示: image.png 1.2.2  WIN10 MinGW-64安装 进入下载后安装包存储路径,选中 image.png ,并点击鼠标右键选择提取文件进行文件提取...,提取界面如下图所示: image.png 提取后可以看到生成了一个mingw64命名文件夹,如下图所示: image.png 将该文件夹名称重命名为MinGW,拷贝到C盘下,如下图所示: image.png...,如下图所示: image.png 1.2.4  MSYS安装 进入下载后安装包存储路径,选中 image.png ,并点击鼠标右键选择提取文件进行文件提取提取界面如下图所示: image.png 提取后可以看到生成了一个...mingw64命名文件夹,如下图所示: image.png 将该文件夹拷贝到C盘MinGW文件夹下,如下图所示: image.png 1.2.5  环境变量配置 根据以上步骤安装好后,需要在系统环境变量...1.5.3  环境变量配置 添加环境变量步骤和第1.2.5小节操作一样,在Path中添加C:\Python27和C:\Python27\Scripts,如下图所示: image.png 1.6  nrfutil

    1.2K70

    win10下python环境变量设置

    大家好,又见面了,我是你们朋友全栈君。 我用是python_2.7.3.msi,从官网下载之后,一路按照默认进行安装。...安装之后配置环境变量步骤如下: 1,点“我电脑”,右键选“属性” 2,选择“高级系统设置”—>选“环境变量”—>在“系统变量”中选中“Path”,再点“编辑”—>再点“编辑文本” 3,在“变量值...”一栏,把自己所安装python路径拷进去就可以了,我安装路径是“C:\Python27” %这一步要注意:在拷贝路径“C:\Python27”时,前面要加分号,,还要注意,分号一定是英文输入法里分号...,我刚开始没有注意到这一点,导致在命令行里输入python命令时,总是失败,会提示‘python’不是内部或外部命令,也不是可运行程序或批处理文件 发布者:全栈程序员栈长,转载请注明出处:https

    2.7K20
    领券