mirror of
https://github.com/Toxblh/MTMR.git
synced 2026-01-10 17:08:39 +00:00
36 lines
801 B
Swift
36 lines
801 B
Swift
//
|
|
// KeyPress.swift
|
|
// MTMR
|
|
//
|
|
// Created by Anton Palgunov on 17/03/2018.
|
|
// Copyright © 2018 Anton Palgunov. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
protocol KeyPress {
|
|
var keyCode: CGKeyCode { get }
|
|
func send()
|
|
}
|
|
|
|
struct GenericKeyPress: KeyPress {
|
|
var keyCode: CGKeyCode
|
|
}
|
|
|
|
extension KeyPress {
|
|
func send () {
|
|
let src = CGEventSource(stateID: .hidSystemState)
|
|
let keyDown = CGEvent(keyboardEventSource: src, virtualKey: keyCode, keyDown: true)
|
|
let keyUp = CGEvent(keyboardEventSource: src, virtualKey: keyCode, keyDown: false)
|
|
|
|
let loc: CGEventTapLocation = .cghidEventTap
|
|
keyDown?.post(tap: loc)
|
|
keyUp?.post(tap: loc)
|
|
}
|
|
}
|
|
|
|
func HIDPostAuxKey(_ key: Int32) {
|
|
let key = UInt8(key)
|
|
MediaKeys.hidPostAuxKey(key)
|
|
}
|