How do I simulate a mouse click through the mac terminal?

不想你离开。 提交于 2019-11-29 13:22:22

问题


Is there any way to do this without any programs or scripts? (Maybe through osascript?)


回答1:


You can automate a mouse click using Applescript.

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

If you want to click within a browser window you can use Applescript with the help of Javascript

tell application "safari"
    activate
    do JavaScript "document.getElementById('element').click();"
end tell

Purely via terminal, you can create a textfile with the name click.m or whatever name you like, save it with the following code

// 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;
}

then compile it as instructed:

gcc -o click click.m -framework ApplicationServices -framework Foundation

and move it to the appropriate system folder for convenience

sudo mv click /usr/bin
sudo chmod +x /usr/bin/click

and now you can run a simple terminal command to manipulate the mouse

click -x [coord] -y [coord]

note: a more thorough code example has been provided by Jardel Weyrich, here and John Dorian provided a great solution written in Java, here




回答2:


Hey. I had this same question, and I'm not sure if this is what you're looking for, but it will let you move the mouse to a given coordinate on the screen and execute a click. You need intel though, which I don't, so I wasn't able to use it, but I'll give you any help you might need. Link: http://hints.macworld.com/article.php?story=2008051406323031



来源:https://stackoverflow.com/questions/4230867/how-do-i-simulate-a-mouse-click-through-the-mac-terminal

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!