Python Pywinauto中的DragMouse命令

Python Pywinauto中的DragMouse命令,python,copy,mouse,drag,pywinauto,Python,Copy,Mouse,Drag,Pywinauto,我正在使用pywinauto,必须从一个应用程序中复制一个字,而这个应用程序在PrintControlIdentifiers命令中不检索任何值。我的想法是使用DragMouse命令将鼠标从文本的开头拖到文本的结尾,然后使用Ctrl+C命令 我在应用程序中使用了以下命令: window1.DragMouse(button='left', pressed='',press_coords=(256,0),release_coords=(256,800)) 但这不起作用,也不会抛出任何错误消息。请告诉

我正在使用pywinauto,必须从一个应用程序中复制一个字,而这个应用程序在PrintControlIdentifiers命令中不检索任何值。我的想法是使用DragMouse命令将鼠标从文本的开头拖到文本的结尾,然后使用Ctrl+C命令

我在应用程序中使用了以下命令:

window1.DragMouse(button='left', pressed='',press_coords=(256,0),release_coords=(256,800))
但这不起作用,也不会抛出任何错误消息。请告诉我在哪里可以找到有关DragMouse的更多示例。

如果DragMouseInput不适用于您,我可以建议解决方法。代码可能看起来只是一个原型,没有经过测试:

 from pywinauto import clipboard

 app.Window.Control.TypeKeys('^a^c') # Ctrl+A, Ctrl+C
 full_str = clipboard.GetData()
 start_index = full_str.find(substring)
 app.Window.Control.TypeKeys('{HOME}{RIGHT %d}+{RIGHT %d}^c' % (start_index, len(substring)))
 # ^ is Ctrl, + is Shift
这种方法不依赖于更能抵抗屏幕分辨率变化的坐标

要在控件不在键盘焦点时导航到该控件,您可以使用{TAB}键别名BTW,{TAB 3}=={TAB}{TAB}{TAB}。

如果DragMouseInput对您不起作用,我可以建议解决方法。代码可能看起来只是一个原型,没有经过测试:

 from pywinauto import clipboard

 app.Window.Control.TypeKeys('^a^c') # Ctrl+A, Ctrl+C
 full_str = clipboard.GetData()
 start_index = full_str.find(substring)
 app.Window.Control.TypeKeys('{HOME}{RIGHT %d}+{RIGHT %d}^c' % (start_index, len(substring)))
 # ^ is Ctrl, + is Shift
这种方法不依赖于更能抵抗屏幕分辨率变化的坐标


如果控件不在键盘焦点,你可以使用{TAB}键别名,顺便说一句,{TAB 3}={TAB}{TAB}{TAB}来导航到它。

你试过DragMouseInput吗?如果需要,那TAB怎么办Ctrl+A然后Ctrl+C?@Vasily:DragMouseInput也不起作用。在浏览了你的一些其他博客之后,我现在的问题是,DragMouse或DragMouseInput可用于高亮显示选择文本?@Swapy:如果我要复制的单词是屏幕上唯一的文本,那么这将是一个不错的选择,但我必须选择特定的文本。DragMouse*方法用于在单元测试中突出显示编辑框文本。但你的控制似乎非常具体。我会尝试使用TypeKeys建议一种解决方法。你尝试过DragMouseInput吗?如果需要,那么Tab如何Ctrl+a然后Ctrl+C?@Vasily:DragMouseInput也不起作用。在浏览了你的一些其他博客之后,我现在的问题是,DragMouse或DragMouseInput可用于高亮显示选择文本?@Swapy:如果我要复制的单词是屏幕上唯一的文本,那么这将是一个不错的选择,但我必须选择特定的文本。DragMouse*方法用于在单元测试中突出显示编辑框文本。但你的控制似乎非常具体。我将尝试建议一种使用TypeKeys的解决方法。瓦西里,谢谢。不幸的是,Ctrl+a,Ctrl+C没有从应用程序复制整个文本。但是,我尝试使用Tab键指向特定字符串,并使用上面的代码,将%d替换为数字。它不起作用。请您解释一下TypeKeys{HOME}{RIGHT 4}^{RIGHT 4}^c将起作用,因此我可以解决此问题。您的代码帮助我优化了其他问题。如果您的控件集中用于键盘输入,则可以按Home键将键盘光标设置在位置0。然后按向右箭头可导航到正确方向的多个位置。然后按住Shift键抱歉,我的意思是按住Shift键,即%not^,然后按向右箭头选择文本的必要部分。我已经确定了记者轮班的答案。嗨,瓦西里,非常感谢你提出这么好的主意!顺便说一下,Shift是“+”,Alt是“%”,对不起。更正了答案Vasily,我正在使用剪贴板,然而,很奇怪的是,它有时工作正常,但有时会抛出以下错误:pywintypes.error:5,“OpenClipboard”,“访问被拒绝”。还有其他建议吗?Vasily,谢谢。不幸的是,Ctrl+A,Ctrl+C没有从应用程序复制整个文本。但是,我尝试使用制表符到特定字符串,并使用上面的代码,将%d替换为数字。它不起作用。请解释一下TypeKeys{HOME}{RIGHT 4}^{RIGHT 4}^C的工作原理,因此,我可以解决此问题。您的代码帮助我优化了其他问题。如果您的控件专注于键盘输入,您可以按Home键将键盘光标设置在位置0。然后按向右箭头可导航到正确方向的多个位置。然后按住Shift键抱歉,我的意思是按住Shift键,即%not^,然后按向右箭头选择文本的必要部分。我已经确定了记者轮班的答案。嗨,瓦西里,非常感谢你提出这么好的主意!顺便说一下,Shift是“+”,Alt是“%”,对不起。更正了答案Vasily,我正在使用剪贴板,然而,很奇怪的是,它有时工作正常,但有时会给我带来以下错误:pywintypes.error:5,“OpenClipboard”,“访问被拒绝”。还有其他建议吗?