Отслеживайте, когда приложение открывает файл

Мне интересно, есть ли способ отслеживать, когда пользователь нажимает открытый файл (cmd+o) в любом приложении.

Я думал, что мог бы использовать addGlobalMonitorForEvents, но не знал, как чтобы получить конкретную информацию о событии "Открыть файл...".


person zoecarver    schedule 13.02.2018    source источник
comment
Надеюсь, это окажется невозможным.   -  person matt    schedule 13.02.2018
comment
Вы можете отслеживать только клавиши-модификаторы (флаги изменены) при использовании глобального монитора. Таким образом, вы сможете обнаружить, только если пользователь нажмет командную клавишу. Невозможно глобально отслеживать события нажатия клавиш.   -  person Leo Dabus    schedule 13.02.2018
comment
@LeoDabus, а как насчет Альфреда? Он может отслеживать события нажатия клавиш во всем мире. alfredapp.com   -  person zoecarver    schedule 13.02.2018
comment
ты прошел через ответ @pudility   -  person Vikram Sinha    schedule 13.02.2018


Ответы (1)


Мне удалось в основном решить проблему, используя этот ответ:

    let keycode = UInt16(0x1F)
    let keymask: NSEvent.ModifierFlags = NSEvent.ModifierFlags.command
    //...
    let options = NSDictionary(object: kCFBooleanTrue, forKey: kAXTrustedCheckOptionPrompt.takeUnretainedValue() as NSString) as CFDictionary
    let trusted = AXIsProcessTrustedWithOptions(options)
    if (trusted) {
        NSEvent.addGlobalMonitorForEvents(matching: .keyUp, handler: self.handler)
    }
person Community    schedule 13.02.2018