On 6/10/06, Paul Moore <p.f.moore at gmail.com> wrote: > On 6/10/06, Ka-Ping Yee <python-dev at zesty.ca> wrote: > > ...so i looked at PEAK's getnodeid48() routine and borrowed the > > Win32 calls from there, with a comment giving attribution to PEAK. > > Instead of using pywin32, could you use ctypes, as that's part of core > Python? It looks like the only Win32 API you use is CoCreateGUID, so > wrapping it should be doable... Here's some sample code (taken from Thomas Heller's comtypes module) >>> from ctypes import oledll, Structure, byref >>> from ctypes.wintypes import BYTE, WORD, DWORD >>> class GUID(Structure): ... _fields_ = [("Data1", DWORD), ... ("Data2", WORD), ... ("Data3", WORD), ... ("Data4", BYTE * 8)] ... >>> guid = GUID() >>> oledll.ole32.CoCreateGuid(byref(guid)) 0 >>> guid <__main__.GUID object at 0x00978EE0> >>> guid.Data1 3391869098L >>> guid.Data2 51115 >>> guid.Data3 20060 >>> guid.Data4 <__main__.c_byte_Array_8 object at 0x00978E40> >>> I'm not sure what the int(...[-13,-1], 16) does (as it stands, it fails for me - I think you need to put str() round the CreateGuid call) but I *think* it's the equivalent of guid.Data1 above. So, you'd have: def win32_getnode(): """Get the hardware address on Windows using Win32 extensions.""" from ctypes import oledll, Structure, byref from ctypes.wintypes import BYTE, WORD, DWORD class GUID(Structure): _fields_ = [("Data1", DWORD), ("Data2", WORD), ("Data3", WORD), ("Data4", BYTE * 8)] guid = GUID() oledll.ole32.CoCreateGuid(byref(guid)) return guid.Data1 Hope this is of use. Paul.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4