Python:PyAutoIt:control_click

时间:2019-01-16 05:15:19

标签: python autoit

我试图在特定位置模拟鼠标单击,同时仍然能够控制鼠标。据我了解,我可以将pyautoit库与命令control_click一起使用。

例如,我想单击该位置(1097,832),但是想在发生此操作时仍使用鼠标。

我看到的在python中使用此命令的唯一示例是在下面的代码中。

import autoit

autoit.run("notepad.exe")
autoit.win_wait_active("[CLASS:Notepad]", 3)
autoit.control_send("[CLASS:Notepad]", "Edit1", "hello world{!}")
autoit.win_close("[CLASS:Notepad]")
autoit.control_click("[Class:#32770]", "Button2")

这是库中的函数

def control_click(title, control, **kwargs):
    """
    :param title:
    :param text:
    :param control:
    :param button:
    :param clicks:
    :param x:
    :param y:
    :return:
    """
    text = kwargs.get("text", "")
    button = kwargs.get("button", "left")
    clicks = kwargs.get("clicks", 1)
    x = kwargs.get("x", INTDEFAULT)
    y = kwargs.get("y", INTDEFAULT)

    ret = AUTO_IT.AU3_ControlClick(LPCWSTR(title), LPCWSTR(text),
                                   LPCWSTR(control), LPCWSTR(button),
                                   INT(clicks), INT(x), INT(y))
    return ret

2 个答案:

答案 0 :(得分:0)

不确定如何同时使用鼠标进行两个处理,但是如果要使用坐标单击下面的pythonautoit来单击任何特定区域,请参考以下代码。

import autoit

autoit.run("notepad.exe")
autoit.win_wait_active("[CLASS:Notepad]", 3)
autoit.control_send("[CLASS:Notepad]", "Edit1", "hello world{!}")
autoit.win_close("[CLASS:Notepad]")
autoit.mouse_click("left",272,70)

上面的代码将左键单击不保存按钮。 如果您安装了autoit,则可以使用AutoIt Window info(x86)AutoIt Window info(x64)来获取Windows对象的完整详细信息。

让我知道以上答案是否有帮助。

答案 1 :(得分:0)

control_click不使用鼠标光标。

mouse_click使用鼠标光标。

来自 AutoItX.chm 帮助文件的

control_click自变量是:

"title", "text", "controlID" [, button [, clicks [, x [, y ]]]]

其中可选参数名称与**kwargs对齐。

来自库的control_click

PyAutoIt自变量为:

"title", "control" [, **kwargs]

其中**kwargs是可选的命名参数。

**kwargs接受命名参数。即text="some text in the window"

要点击控件,您可以使用

autoit.control_click("[CLASS:Notepad]", "Edit1", x=1097, y=832)

在库中,您发布的代码为**kwargs的名称:

text = kwargs.get("text", "")
button = kwargs.get("button", "left")
clicks = kwargs.get("clicks", 1)
x = kwargs.get("x", INTDEFAULT)
y = kwargs.get("y", INTDEFAULT)

它被存储为字典,并且使用.get方法来获取值。 如果传递text="some text in the window",则text等于some text in the window,否则将等于空字符串,在库中用""表示,这是默认值。