183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehimport sys 283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehfrom ctypes import * 383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh 483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh##class HMODULE(Structure): 583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh## _fields_ = [("value", c_void_p)] 683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh 783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh## def __repr__(self): 883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh## return "<HMODULE %s>" % self.value 983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh 1083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh##windll.kernel32.GetModuleHandleA.restype = HMODULE 1183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh 1283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh##print windll.kernel32.GetModuleHandleA("python23.dll") 1383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh##print hex(sys.dllhandle) 1483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh 1583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh##def nonzero(handle): 1683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh## return (GetLastError(), handle) 1783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh 1883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh##windll.kernel32.GetModuleHandleA.errcheck = nonzero 1983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh##print windll.kernel32.GetModuleHandleA("spam") 20