如何通过mac终端模拟鼠标点击?

che*_*pro 10 macos terminal osascript

没有任何程序或脚本,有没有办法做到这一点?(也许通过osascript?)

dav*_*rey 35

您可以使用Applescript自动鼠标单击.

tell application "System Events"
    tell application process "Application_Name"
        key code 53
        delay 1
        click (click at {1800, 1200})
    end tell
end tell
Run Code Online (Sandbox Code Playgroud)

如果要在浏览器窗口中单击,可以在Javascript的帮助下使用Applescript

tell application "safari"
    activate
    do JavaScript "document.getElementById('element').click();"
end tell
Run Code Online (Sandbox Code Playgroud)

纯粹通过终端,您可以创建一个带有click.m您喜欢的名称或名称的文本文件,并使用以下代码进行保存

// File:
// click.m
//
// Compile with:
// gcc -o click click.m -framework ApplicationServices -framework Foundation
//
// Usage:
// ./click -x pixels -y pixels
// At the given coordinates it will click and release.
//
// From http://hints.macworld.com/article.php?story=2008051406323031
#import <Foundation/Foundation.h>
#import <ApplicationServices/ApplicationServices.h>

int main(int argc, char *argv[]) {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    NSUserDefaults *args = [NSUserDefaults standardUserDefaults];

    int x = [args integerForKey:@"x"];
    int y = [args integerForKey:@"y"];

    CGPoint pt;
    pt.x = x;
    pt.y = y;

    CGPostMouseEvent( pt, 1, 1, 1 );
    CGPostMouseEvent( pt, 1, 1, 0 );

    [pool release];
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

然后按照说明编译它:

gcc -o click click.m -framework ApplicationServices -framework Foundation
Run Code Online (Sandbox Code Playgroud)

并将其移动到相应的系统文件夹以方便使用

sudo mv click /usr/bin
sudo chmod +x /usr/bin/click
Run Code Online (Sandbox Code Playgroud)

现在你可以运行一个简单的终端命令来操纵鼠标

click -x [coord] -y [coord]
Run Code Online (Sandbox Code Playgroud)

注意:更彻底的代码示例已被贾德尔提供魏里希,这里和约翰·多利安提供用Java编写的一个很好的解决方案,在这里


JSh*_*hoe 0

嘿。我有同样的问题,我不确定这是否是您正在寻找的,但它可以让您将鼠标移动到屏幕上的给定坐标并执行单击。不过你需要情报,而我不需要,所以我无法使用它,但我会给你任何你可能需要的帮助。链接:http://hints.macworld.com/article.php? story=2008051406323031