C++ 在MacOS第二个屏幕上模拟鼠标单击
我尝试使用C++/Swift以编程方式在macOS上模拟鼠标单击。我下面的代码在主屏幕上运行良好。但是,我也希望对辅助屏幕执行类似操作 你知道怎么做吗?谢谢 在Swift中测试代码(请记住链接ApplicationServiceAccess.framework):C++ 在MacOS第二个屏幕上模拟鼠标单击,c++,swift,macos,mouse,simulate,C++,Swift,Macos,Mouse,Simulate,我尝试使用C++/Swift以编程方式在macOS上模拟鼠标单击。我下面的代码在主屏幕上运行良好。但是,我也希望对辅助屏幕执行类似操作 你知道怎么做吗?谢谢 在Swift中测试代码(请记住链接ApplicationServiceAccess.framework): 只是一个想法:使用CGDisplayBounds()获取屏幕边界并计算位置。用于创建CGPointp的pointX和pointY很可能在主显示上返回一个点。您是否尝试更改这些值以表示辅助显示器上的点?您是否尝试调用NSScreen.s
只是一个想法:使用
CGDisplayBounds()
获取屏幕边界并计算位置。用于创建CGPointp
的pointX
和pointY
很可能在主显示上返回一个点。您是否尝试更改这些值以表示辅助显示器上的点?您是否尝试调用NSScreen.screens[1].frame
返回辅助显示器的大小?也许您可以用它来替换pointX
和pointY
的值。只是一个想法:用CGDisplayBounds()获得屏幕的边界
并计算位置。用于创建CGPoint的点X
和点Y
很可能在主显示屏上返回一个点。您是否尝试更改这些值以表示辅助显示器上的点?您是否尝试调用NSScreen.screens[1].frame
返回辅助显示器的大小?也许您可以用它来替换pointX
和pointY
的值。
import Foundation
import CoreGraphics
let kDelayUSec : useconds_t = 500_000
func moveMouseClick(p: CGPoint) {
let mouseMove = CGEvent(mouseEventSource: nil, mouseType: CGEventType.leftMouseDragged, mouseCursorPosition: p, mouseButton: CGMouseButton.left)
let mouseDown = CGEvent(mouseEventSource: nil, mouseType: CGEventType.leftMouseDown, mouseCursorPosition: p, mouseButton: CGMouseButton.left)
let mouseUp = CGEvent(mouseEventSource: nil, mouseType: CGEventType.leftMouseUp, mouseCursorPosition: p, mouseButton: CGMouseButton.left)
mouseMove?.post(tap: CGEventTapLocation.cghidEventTap)
usleep(kDelayUSec)
mouseDown?.post(tap: CGEventTapLocation.cghidEventTap)
usleep(kDelayUSec)
mouseUp?.post(tap: CGEventTapLocation.cghidEventTap)
}
print("Test mouse click")
let pointX = 300
let pointY = 200
let p = CGPoint(x: CGFloat(pointX), y: CGFloat(pointY))
moveMouseClick(p: p)