【问题标题】:how to drag window elements如何拖动窗口元素
【发布时间】:2016-04-29 21:02:38
【问题描述】:

我需要拖动将主窗口分成两部分的窗口边框。 我试过这个:

import win32api
import win32con
win32api.SetCursorPos((700,1200))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,700,1200,0,0)
win32api.SetCursorPos((700,960))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,700,960,0,0)

我也试过这个:

import pywinauto
pywinauto.controls.HwndWrapper.DragMouse(button='left', pressed='', press_coords=(700,1200), release_coords=(700,960))

第一个例子不起作用。它只是什么都不做。 第二个报错:

AttributeError: 'module' object has no attribute 'DragMouse'

我是不是导入错了? 有人可以举个用鼠标拖动物体的例子吗?

狮子座

【问题讨论】:

  • 您能否进一步解释一下您需要完成的工作是什么?因为据我了解,您的第一个示例应该有效。这是将光标设置到位置 --> 鼠标左键向下 ---> 设置新位置 ---> 鼠标左键向上
  • @harristyle:拖动操作通常以响应鼠标 move 消息的方式实现。因此,幼稚的实现无法正常工作。无论如何,解决这个问题的正确方法通常是UI Automation
  • 您错误地使用了来自pywinautoDragMouse。看看the correct example

标签: python winapi mouse drag


【解决方案1】:

我的道歉。 第一个示例确实有效。 我一定错过了窗口中间栏的初始坐标。 具体来说 我想在开始使用它的元素之前重新定位整个应用程序窗口。 重新定位窗口本身很容易,但它也有可以上下拖动的中间栏。在开始处理之前,该条必须位于特定位置。 问题解决了。 ;-) 狮子座

【讨论】:

    猜你喜欢
    • 2011-10-23
    • 2011-11-17
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    相关资源
    最近更新 更多