我需要设置鼠标在屏幕上的位置。在其他一些类似的问题中,建议使用CGDisplayMoveCursorToPoint(CGDirectDisplayID display, CGPoint point)
,但我不知道如何获得CGDirectDisplayID
. 请告诉我如何获得CGDirectDisplayID
或不同的方法来设置鼠标位置。
问问题
3155 次
6 回答
7
这个问题的真正答案是:
CGMainDisplayID()
CGDisplayMoveCursorToPoint(CGMainDisplayID(), point);
于 2015-01-26T13:26:47.457 回答
3
试试CGWarpMouseCursorPosition()
。它不需要显示 ID。
如果你想要一个显示 ID,你可以使用任何你喜欢的标准从返回的数组中选择一个元素[NSScreen screens]
。调用-deviceDescription
该NSScreen
对象。从返回的字典中,-objectForKey:
使用 key调用@"NSScreenNumber"
。
于 2012-04-21T11:51:42.840 回答
1
这是一种方法:
// coordinate at (10,10) on the screen
CGPoint pt;
pt.x = 10;
pt.y = 10;
CGEventRef moveEvent = CGEventCreateMouseEvent(
NULL, // NULL to create a new event
kCGEventMouseMoved, // what type of event (move)
pt, // screen coordinate for the event
kCGMouseButtonLeft // irrelevant for a move event
);
// post the event and cleanup
CGEventPost(kCGSessionEventTap, moveEvent);
CFRelease(moveEvent);
这会将光标移动到屏幕上的点 (10,10)(左上角,Apple 菜单旁边)。
于 2012-04-21T03:49:06.063 回答
1
这是一个 Swift 版本,只是为了好玩:
let pt = CGPoint(x: 100, y: 10)
let moveEvent = CGEventCreateMouseEvent(nil, .MouseMoved, pt, .Left)
CGEventPost(.CGSessionEventTap, moveEvent);
于 2016-09-07T03:37:27.523 回答
1
对我有帮助的答案的 Swift 3 版本:
let pt = CGPoint(x: 100, y: 10)
let moveEvent = CGEvent(mouseEventSource: nil, mouseType: .mouseMoved,
mouseCursorPosition: pt, mouseButton: .left)
moveEvent?.post(tap: .cgSessionEventTap)
于 2017-03-20T09:12:24.550 回答
0
这是在 Swift 5 中:
let pt = CGPoint(x: 100, y: 10)
let moveEvent = CGEvent(mouseEventSource: nil, mouseType: .mouseMoved, mouseCursorPosition: pt, mouseButton: .left)
moveEvent?.post(tap: .cgSessionEventTap);
于 2021-06-13T03:37:25.307 回答