Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在MacOS第二个屏幕上模拟鼠标单击_C++_Swift_Macos_Mouse_Simulate - Fatal编程技术网

C++ 在MacOS第二个屏幕上模拟鼠标单击

C++ 在MacOS第二个屏幕上模拟鼠标单击,c++,swift,macos,mouse,simulate,C++,Swift,Macos,Mouse,Simulate,我尝试使用C++/Swift以编程方式在macOS上模拟鼠标单击。我下面的代码在主屏幕上运行良好。但是,我也希望对辅助屏幕执行类似操作 你知道怎么做吗?谢谢 在Swift中测试代码(请记住链接ApplicationServiceAccess.framework): 只是一个想法:使用CGDisplayBounds()获取屏幕边界并计算位置。用于创建CGPointp的pointX和pointY很可能在主显示上返回一个点。您是否尝试更改这些值以表示辅助显示器上的点?您是否尝试调用NSScreen.s

我尝试使用C++/Swift以编程方式在macOS上模拟鼠标单击。我下面的代码在主屏幕上运行良好。但是,我也希望对辅助屏幕执行类似操作

你知道怎么做吗?谢谢

在Swift中测试代码(请记住链接ApplicationServiceAccess.framework):


只是一个想法:使用
CGDisplayBounds()
获取屏幕边界并计算位置。用于创建CGPoint
p
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)