Posts

Post not yet marked as solved
2 Replies
381 Views
Hey Guys, I am writing a little Swift apllication, which runs on my Mac, that is connected to the TV. To control the mouse I use my own SmartHome-App. In this app I have implemented a touchpad like from the MacBook. If the user triggers a tap/drag event, a UDP message will be sent to the mentioned application (MouseServer). The MouseServer is listening for UDP messages and moves the mouse, when the command for mouse move was recieved. Everything is working very well. But with the following mouse move code, I can't open the apple menu bar on top of the screen if I move the mouse to the top (when for example the browser is in fullscreen mode). I hope you know what I mean. If you are in a fullscreen window, the top menu bar within the apple icon disappears. But when you move the cursor to the top, the menu bar appears again. This doesn't work with my code. I've tried many different approches, but can't get it to work. Do you have any Idea? func moveMouse(x: Int, y: Int) { // show cursor NSCursor.setHiddenUntilMouseMoves(false) NSCursor.unhide() // generate the CGPoint object for click event lastPoint = CGPoint(x: x, y: y) print("X: \(x), Y: \(y)") // --- Variant 1 --- // move the cursor to desired position CGDisplayMoveCursorToPoint(CGMainDisplayID(), lastPoint) CGDisplayShowCursor(CGMainDisplayID()) // --- Variant 2 --- //if let eventSource = CGEventSource(stateID: .hidSystemState) { // let mouseEvent = CGEvent(mouseEventSource: eventSource, mouseType: .mouseMoved, mouseCursorPosition: lastPoint, mouseButton: .left) // mouseEvent?.post(tap: .cghidEventTap) //} // --- Variant 3 --- //moveMouseWithAppleScript(x: x, y: y) } func moveMouseWithAppleScript(x: Int, y: Int) { let script = """ tell application "System Events" set mousePos to {\(x), \(y)} do shell script "caffeinate -u -t 0.1" do shell script "osascript -e \\"tell application \\\\\\"System Events\\\\\\" set position of mousePos to {item 1 of mousePos, item 2 of mousePos} end tell\\"" end tell """ let appleScript = NSAppleScript(source: script) var error: NSDictionary? appleScript?.executeAndReturnError(&error) if let error = error { print("Error executing AppleScript: \(error)") } } Best regards, Robin11
Posted
by Robin11.
Last updated
.