Python 判斷目前的 DLL or EXE 是32bit 還是 64bit
来源:互联网 发布:ubuntu记事本 编辑:程序博客网 时间:2024/05/18 02:56
第一種為使用 win32file 裡面的 method,GetBinaryType 這個 method 在ms 的官方文件也有提到
ConstantValueMeaningSCS_32BIT_BINARY0A 32-bit Windows-based applicationSCS_64BIT_BINARY6A 64-bit Windows-based application.SCS_DOS_BINARY1An MS-DOS – based applicationSCS_OS216_BINARY5A 16-bit OS/2-based applicationSCS_PIF_BINARY3A PIF file that executes an MS-DOS – based applicationSCS_POSIX_BINARY4A POSIX – based applicationSCS_WOW_BINARY2A 16-bit Windows-based application
ConstantValueMeaningSCS_32BIT_BINARY0A 32-bit Windows-based applicationSCS_64BIT_BINARY6A 64-bit Windows-based application.SCS_DOS_BINARY1An MS-DOS – based applicationSCS_OS216_BINARY5A 16-bit OS/2-based applicationSCS_PIF_BINARY3A PIF file that executes an MS-DOS – based applicationSCS_POSIX_BINARY4A POSIX – based applicationSCS_WOW_BINARY2A 16-bit Windows-based application
http://msdn.microsoft.com/en-us/library/aa364819(VS.85).aspx
第二種方法為 直接讀取binary判斷byte 裡面的資料....
s
# -*- coding: utf-8 -*- #source page:#http://stackoverflow.com/questions/1345632/determine-if-an-executable-or-library-is-32-or-64-bits-on-windowsimport win32file if __name__ == "__main__": spath = r"C:\Temp\somewher\Your_File64_or_32.exe" SCS_64BIT_BINARY = 6#在這裡特別定義這個constant 原因就是因為 win32file 裡面沒有定義這個(我是使用 python2.5.2.2 32bit) type = win32file.GetBinaryType(spath) print "type", type if type == win32file.SCS_32BIT_BINARY: print "A 32-bit Windows-based application" elif type == SCS_64BIT_BINARY: print "A 64-bit Windows-based application." elif type == win32file.SCS_DOS_BINARY: print "An MS-DOS – based application" elif type == win32file.SCS_OS216_BINARY: print "A 16-bit OS/2-based application" elif type == win32file.SCS_PIF_BINARY: print "A PIF file that executes an MS-DOS – based application" elif type == win32file.SCS_POSIX_BINARY: print "A POSIX – based application" elif type == win32file.SCS_WOW_BINARY: print "A 16-bit Windows-based application"
ConstantValueMeaningSCS_32BIT_BINARY0A 32-bit Windows-based applicationSCS_64BIT_BINARY6A 64-bit Windows-based application.SCS_DOS_BINARY1An MS-DOS – based applicationSCS_OS216_BINARY5A 16-bit OS/2-based applicationSCS_PIF_BINARY3A PIF file that executes an MS-DOS – based applicationSCS_POSIX_BINARY4A POSIX – based applicationSCS_WOW_BINARY2A 16-bit Windows-based application
ConstantValueMeaningSCS_32BIT_BINARY0A 32-bit Windows-based applicationSCS_64BIT_BINARY6A 64-bit Windows-based application.SCS_DOS_BINARY1An MS-DOS – based applicationSCS_OS216_BINARY5A 16-bit OS/2-based applicationSCS_PIF_BINARY3A PIF file that executes an MS-DOS – based applicationSCS_POSIX_BINARY4A POSIX – based applicationSCS_WOW_BINARY2A 16-bit Windows-based application
http://msdn.microsoft.com/en-us/library/aa364819(VS.85).aspx
s
s
import struct IMAGE_FILE_MACHINE_I386=332 IMAGE_FILE_MACHINE_IA64=512 IMAGE_FILE_MACHINE_AMD64=34404 f=open("c:\windows\explorer.exe", "rb") s=f.read(2) if s!="MZ": print "Not an EXE file" else: f.seek(60) s=f.read(4) header_offset=struct.unpack("<L", s)[0] f.seek(header_offset+4) s=f.read(2) machine=struct.unpack("<H", s)[0] if machine==IMAGE_FILE_MACHINE_I386: print "IA-32 (32-bit x86)" elif machine==IMAGE_FILE_MACHINE_IA64: print "IA-64 (Itanium)" elif machine==IMAGE_FILE_MACHINE_AMD64: print "AMD64 (64-bit x86)" else: print "Unknown architecture" f.close()
s
s
s
s
- Python 判斷目前的 DLL or EXE 是32bit 還是 64bit
- check if unmanaged dll is 32-bit or 64-bit?
- 32bit or 64bit
- 如何知道可执行文件是32-bit还是64-bit
- 如何知道可执行文件是32-bit还是64-bit
- 如何知道可执行文件是32-bit还是64-bit
- 如何知道可执行文件是32-bit还是64-bit
- 如何知道可执行文件是32-bit还是64-bit
- 如何知道可执行文件是32-bit还是64-bit
- 如何知道可执行文件是32-bit还是64-bit
- 如何知道可执行文件是32-bit还是64-bit
- 如何知道可执行文件是32-bit还是64-bit
- 如何知道可执行文件是32-bit还是64-bit
- 如何知道可执行文件是32-bit还是64-bit
- 如何知道可执行文件是32-bit还是64-bit
- 如何知道可执行文件是32-bit还是64-bit
- 如何知道可执行文件是32-bit还是64-bit
- 如何知道可执行文件是32-bit还是64-bit
- iPhone开发进阶--利用ModalViewController切换View
- QT中的元对象系统(一):QVariant的简单说明
- Android MMS模块数据存取
- paip.AJAX回调函数不起作用的解决
- Defining Classes and Objects
- Python 判斷目前的 DLL or EXE 是32bit 還是 64bit
- QT中的元对象系统(二):创建自定义的QT类型
- Android内存(内存溢出 内存不足 内存低 .)优化详解.
- postgreSQL连接数据库
- QML中的Model View——一个ListView实例
- 《疯狂Java讲义》读书笔记——面向对象(上)
- 文件操作
- Android中源码Launcher主屏幕程序排列详解【安卓Launcher进化一】
- Qt中的事件机制