Swift 用于鼠标点击的命令行工具不会在 Finder 中进行多次点击
Swift command line tool for mouse clicks will not multi-click in Finder
我在命令行工具应用程序中使用以下代码来执行鼠标点击。我使用 shell 脚本来执行代码,并使用听写命令来触发它。这段代码几乎适用于除 Finder 之外的所有程序,我不知道为什么。单击鼠标可以正常工作,但不能单击两次或三次。不知道是什么问题。
// Get location
var ml = NSEvent.mouseLocation
ml.y = NSHeight(NSScreen.screens[0].frame) - ml.y
let location = CGPoint(x: ml.x, y: ml.y)
// Clicks
let e = CGEvent(mouseEventSource: nil, mouseType: .leftMouseDown, mouseCursorPosition: location, mouseButton: .left)!
e.setIntegerValueField(.mouseEventClickState, value: 2) // double click
e.post(tap: .cghidEventTap)
CGEvent(mouseEventSource: nil, mouseType: .leftMouseUp, mouseCursorPosition: location, mouseButton: .left)!.post(tap: .cghidEventTap)
给你
/// Clicks left mouse button twice
static func doubleClick() {
var e = CGEvent(mouseEventSource: nil, mouseType: .leftMouseDown, mouseCursorPosition: Mouse.location, mouseButton: .left)!
e.post(tap: .cghidEventTap)
e = CGEvent(mouseEventSource: nil, mouseType: .leftMouseUp, mouseCursorPosition: Mouse.location, mouseButton: .left)!
e.post(tap: .cghidEventTap)
e = CGEvent(mouseEventSource: nil, mouseType: .leftMouseDown, mouseCursorPosition: Mouse.location, mouseButton: .left)!
e.setIntegerValueField(.mouseEventClickState, value: 2)
e.post(tap: .cghidEventTap)
e = CGEvent(mouseEventSource: nil, mouseType: .leftMouseUp, mouseCursorPosition: Mouse.location, mouseButton: .left)!
e.setIntegerValueField(.mouseEventClickState, value: 2)
e.post(tap: .cghidEventTap)
}
我在命令行工具应用程序中使用以下代码来执行鼠标点击。我使用 shell 脚本来执行代码,并使用听写命令来触发它。这段代码几乎适用于除 Finder 之外的所有程序,我不知道为什么。单击鼠标可以正常工作,但不能单击两次或三次。不知道是什么问题。
// Get location
var ml = NSEvent.mouseLocation
ml.y = NSHeight(NSScreen.screens[0].frame) - ml.y
let location = CGPoint(x: ml.x, y: ml.y)
// Clicks
let e = CGEvent(mouseEventSource: nil, mouseType: .leftMouseDown, mouseCursorPosition: location, mouseButton: .left)!
e.setIntegerValueField(.mouseEventClickState, value: 2) // double click
e.post(tap: .cghidEventTap)
CGEvent(mouseEventSource: nil, mouseType: .leftMouseUp, mouseCursorPosition: location, mouseButton: .left)!.post(tap: .cghidEventTap)
给你
/// Clicks left mouse button twice
static func doubleClick() {
var e = CGEvent(mouseEventSource: nil, mouseType: .leftMouseDown, mouseCursorPosition: Mouse.location, mouseButton: .left)!
e.post(tap: .cghidEventTap)
e = CGEvent(mouseEventSource: nil, mouseType: .leftMouseUp, mouseCursorPosition: Mouse.location, mouseButton: .left)!
e.post(tap: .cghidEventTap)
e = CGEvent(mouseEventSource: nil, mouseType: .leftMouseDown, mouseCursorPosition: Mouse.location, mouseButton: .left)!
e.setIntegerValueField(.mouseEventClickState, value: 2)
e.post(tap: .cghidEventTap)
e = CGEvent(mouseEventSource: nil, mouseType: .leftMouseUp, mouseCursorPosition: Mouse.location, mouseButton: .left)!
e.setIntegerValueField(.mouseEventClickState, value: 2)
e.post(tap: .cghidEventTap)
}