SHGetFileInfo
Thomas Heller
theller at python.net
Tue May 27 00:41:59 EDT 2003
"Jamie" <jamie at nospam.net> writes:
> Hi all,
>
> Does anyone have an example of how to make this call using either the ctypes
> module or the win32 python extensions?
I don't find it in the win32 extensions, so here is the ctypes version,
which prints this (WinXP pro german):
1
0x40400177L
'python.exe'
'Anwendung'
Thomas
-----
from ctypes import *
MAX_PATH = 260
HICON = c_int
class SHFILEINFO(Structure):
_fields_ = [("hIcon", HICON),
("iIcon", c_int),
("dwAttributes", c_uint),
("szDisplayName", c_char * MAX_PATH),
("szTypeName", c_char * 80)]
SHGFI_ICON = 0x000000100
SHGFI_DISPLAYNAME = 0x000000200
SHGFI_TYPENAME = 0x000000400
SHGFI_ATTRIBUTES = 0x000000800
SHGFI_ICONLOCATION = 0x000001000
SHGFI_EXETYPE = 0x000002000
SHGFI_SYSICONINDEX = 0x000004000
SHGFI_LINKOVERLAY = 0x000008000
SHGFI_SELECTED = 0x000010000
SHGFI_ATTR_SPECIFIED = 0x000020000
SHGFI_LARGEICON = 0x000000000
SHGFI_SMALLICON = 0x000000001
SHGFI_OPENICON = 0x000000002
SHGFI_SHELLICONSIZE = 0x000000004
SHGFI_PIDL = 0x000000008
SHGFI_USEFILEATTRIBUTES = 0x000000010
shfileinfo = SHFILEINFO()
import sys
flags = SHGFI_DISPLAYNAME | SHGFI_TYPENAME | SHGFI_ATTRIBUTES
print windll.shell32.SHGetFileInfo(sys.executable,
0,
byref(shfileinfo),
sizeof(shfileinfo),
flags)
print hex(shfileinfo.dwAttributes)
print repr(shfileinfo.szDisplayName)
print repr(shfileinfo.szTypeName)
-----
More information about the Python-list
mailing list