def WndProc(hwnd, msg, wParam, lParam): if msg == WM_PAINT: hdc, ps = win32gui.BeginPaint(hwnd) rect = win32gui.GetClientRect(hwnd) _str = u'请把【工作日志】目录拖拽到这!' win32gui.DrawText(hdc, _str, len(_str) * 2, rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) win32gui.EndPaint(hwnd, ps) win32gui.DragAcceptFiles(hwnd, 1) elif msg == WM_DESTROY: win32gui.PostQuitMessage(0) elif msg == WM_DROPFILES: hDropInfo = wParam filescount = win32api.DragQueryFile(hDropInfo) for i in range(filescount): filename = win32api.DragQueryFile(hDropInfo, i) files = get_files_list(filename) for _f in files: if not isSpecialDir(_f): fileHandler(_f) win32api.DragFinish(hDropInfo) return win32gui.DefWindowProc(hwnd, msg, wParam, lParam)
def WndProc(hwnd, msg, wParam, lParam): if msg == WM_PAINT: hdc, ps = win32gui.BeginPaint(hwnd) rect = win32gui.GetClientRect(hwnd) _str = u'请把【星任务】文件拖拽到这!' win32gui.DrawText(hdc, _str, len(_str) * 2, rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) win32gui.EndPaint(hwnd, ps) win32gui.DragAcceptFiles(hwnd, 1) elif msg == WM_DESTROY: win32gui.PostQuitMessage(0) elif msg == WM_DROPFILES: hDropInfo = wParam filescount = win32api.DragQueryFile(hDropInfo) for i in range(filescount): filename = win32api.DragQueryFile(hDropInfo, i) if os.path.isdir(filename): _files = scan_files(filename) else: _files = [filename] if len(_files) > 0: for _f in _files: fileHandler(_f) win32api.DragFinish(hDropInfo) return win32gui.DefWindowProc(hwnd, msg, wParam, lParam)
def WndProc(hwnd, msg, wParam, lParam): """ 视窗处理 :param hwnd: 句柄 :param msg: 消息 :param wParam: 参数1 :param lParam: 参数2 :return: 下一个消息处理器 """ if msg == WM_PAINT: hdc, ps = win32gui.BeginPaint(hwnd) rect = win32gui.GetClientRect(hwnd) _str = u'请把【项目经理:日报】文件拖拽到这!' win32gui.DrawText(hdc, _str, len(_str) * 2 - 4, rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) win32gui.EndPaint(hwnd, ps) win32gui.DragAcceptFiles(hwnd, 1) elif msg == WM_DESTROY: win32gui.PostQuitMessage(0) elif msg == WM_DROPFILES: """文件拖拉消息 """ hDropInfo = wParam filescount = win32api.DragQueryFile(hDropInfo) for i in range(filescount): """获取文件名""" filename = win32api.DragQueryFile(hDropInfo, i) """处理文件""" fileHandler(hwnd, filename) win32api.DragFinish(hDropInfo) return win32gui.DefWindowProc(hwnd, msg, wParam, lParam)
def OnDropFiles(self, msg): " Handle a file being dropped from file manager " hDropInfo = msg[2] self.frame.SetActiveWindow() # active us nFiles = win32api.DragQueryFile(hDropInfo) try: for iFile in range(0, nFiles): fileName = win32api.DragQueryFile(hDropInfo, iFile) win32ui.GetApp().OpenDocumentFile(fileName) finally: win32api.DragFinish(hDropInfo) return 0
def _getDropFileList(self, stgMedium): rval = [] hDropInfo = stgMedium.data_handle nFiles = win32api.DragQueryFile(hDropInfo) try: for iFile in range(0, nFiles): filepath = shell.DragQueryFileW(hDropInfo, iFile) filepath = os.path.abspath(filepath) fileExists = os.path.exists(filepath) if fileExists: rval.append(filepath) finally: win32api.DragFinish(hDropInfo) return rval
def onDropFiles(self, params): msg = win32mu.Win32Msg(params) hDrop = msg._wParam inclient, point = Sdk.DragQueryPoint(hDrop) # convert from client to canvas pixel coordinates # for the benefit of scrolling views x, y = self._DPtoLP(point) # accept only drops in client area if inclient: numfiles = win32api.DragQueryFile(hDrop, -1) for ix in range(numfiles): filename = win32api.DragQueryFile(hDrop, ix) self.onDropEvent(DropFile, (x, y, filename)) win32api.DragFinish(hDrop)
import win32api, win32con import time import math win32api.SetCursorPos((100, 5)) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0) for i in range(50): x = 500 + math.sin(math.pi * i / 100) * 500 y = 500 + math.cos(i) * 100 #win32api.SetCursorPos((math.trunc(x),math.trunc(y))) try: print " el mouse " + str(win32api.GetCursorPos()) win32api.DragFinish(x, y) #print " el mouse "+str(win32api.mouse_event.__str__) except (e): print "error " + str(e) #win32api.SetCursorPos((math.trunc(x),math.trunc(y))) #win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0) #win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0) #print str(math.trunc(x))+" \t"+str(math.trunc(y)) time.sleep(.01) #win32api.SetCursorPos((100,5)) #win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0)