Nsevent.mouseevent координаты, затронутые масштабированием отображения - как последовательно щелкнуть?IOS

Программируем под IOS
Anonymous
Nsevent.mouseevent координаты, затронутые масштабированием отображения - как последовательно щелкнуть?

Сообщение Anonymous »

Я использую nsevent.mouseevent () , чтобы щелкнуть конкретные координаты в окне другого приложения, но когда я изменяю разрешение на отображение/масштабирование, одни и те же координаты (500, 300) нажимают разные места в окне.

Код: Выделить всё

func sendNSEventClick(at point: NSPoint, pid: pid_t, windowNumber: Int) {
guard let mouseDown = NSEvent.mouseEvent(
with: .leftMouseDown,
location: point,
modifierFlags: [],
timestamp: ProcessInfo.processInfo.systemUptime,
windowNumber: windowNumber,
context: nil,
eventNumber: 0,
clickCount: 1,
pressure: 1.0
) else { return }

mouseDown.cgEvent?.postToPid(pid)
// ... mouseUp similar
}
Простой тест, который не сбои:

Код: Выделить всё

// This should click window center, but clicks different spots at different resolutions
let centerPoint = NSPoint(x: windowFrame.width/2, y: windowFrame.height/2)
sendNSEventClick(at: centerPoint, pid: pid, windowNumber: windowNumber)
Как сделать координаты разрешения/масштабирования независимыми? Нужно ли применить координаты некоторого масштабирования к координатам, прежде чем переходить в nsevent.mouseevent () ?


Подробнее здесь: https://stackoverflow.com/questions/797 ... ick-consis

Вернуться в «IOS»