def Exec(argv,limit=None,pp=None,RootDir=None): ret=[False,None,None,None] si= win32process.GetStartupInfo() if pp: si.hStdInput=pp[0] si.hStdOutput=pp[1] si.hStdError=pp[2] si.wShowWindow=win32con.SW_HIDE si.dwFlags = win32process.STARTF_USESHOWWINDOW | win32con.STARTF_USESTDHANDLES cmd=" ".join(argv) win32api.SetLastError(0) #PyHANDLE, PyHANDLE, int, int = CreateProcess(appName, commandLine , processAttributes , threadAttributes , bInheritHandles , dwCreationFlags , newEnvironment , currentDirectory , startupinfo ) try: pi= win32process.CreateProcess(None,cmd,None,None,True,win32con.CREATE_SUSPENDED,None,RootDir,si) except pywintypes.error , e: ret[1]=e[2] return ret
def test_last_error(self): for x in (0, 1, -1, winerror.TRUST_E_PROVIDER_UNKNOWN): win32api.SetLastError(x) assert x == win32api.GetLastError()
def test_last_error(self): for x in (0, 1, -1, winerror.TRUST_E_PROVIDER_UNKNOWN): win32api.SetLastError(x) self.failUnlessEqual(x, win32api.GetLastError())
False, struct.unpack("i", pid)[0]) pBuffertxt = ctypes.windll.kernel32.VirtualAllocEx( hProcHnd, 0, 4096, win32con.MEM_RESERVE | win32con.MEM_COMMIT, win32con.PAGE_READWRITE) copied = ctypes.create_string_buffer(4) p_copied = ctypes.addressof(copied) lvitem = LVITEMW() lvitem.mask = ctypes.c_uint32(commctrl.LVIF_TEXT) lvitem.pszText = ctypes.c_uint64(pBuffertxt) lvitem.cchTextMax = ctypes.c_int32(4096) lvitem.iSubItem = ctypes.c_int32(0) pLVI = ctypes.windll.kernel32.VirtualAllocEx( hProcHnd, 0, 4096, win32con.MEM_RESERVE | win32con.MEM_COMMIT, win32con.PAGE_READWRITE) win32api.SetLastError(0) ctypes.windll.kernel32.WriteProcessMemory(hProcHnd, pLVI, ctypes.addressof(lvitem), ctypes.sizeof(lvitem), p_copied) num_items = win32gui.SendMessage(slvhwnd, commctrl.LVM_GETITEMCOUNT) hProcHnd = ctypes.windll.kernel32.OpenProcess(win32con.PROCESS_ALL_ACCESS, False, struct.unpack("i", pid)[0]) p = Point() pBufferpnt = ctypes.windll.kernel32.VirtualAllocEx( hProcHnd, 0, ctypes.sizeof(p), win32con.MEM_RESERVE | win32con.MEM_COMMIT, win32con.PAGE_READWRITE) icons = [(0, 0)] * num_items for i in xrange(num_items): # Get icon position