我有一个AppleScript后台脚本,可以System Events
生成热键事件。因此我需要在生成击键之前停止脚本并等待用户释放所有键(否则效果将无法预测)。
我怎样才能完成这项工作? 我不需要AppleScript解决方案。没关系,我可以调用外部Python / Bash / ObjC / Swift。什么,但我只是非常不喜欢运行模糊不清的二进制文件。
答案 0 :(得分:1)
我不知道任何键,但是您可以等待释放修饰键。
例如在用户释放Option和Shift键之前不要继续
use framework "AppKit"
property NSShiftKeyMask : a reference to 131072
property NSAlternateKeyMask : a reference to 524288
property NSEvent : a reference to current application's NSEvent
set modifier_down to true
repeat while modifier_down
set modifier_flags to NSEvent's modifierFlags()
set option_down to ((modifier_flags div (get NSAlternateKeyMask)) mod 2) = 1
set shift_down to ((modifier_flags div (get NSShiftKeyMask)) mod 2) = 1
set modifier_down to option_down or shift_down
end repeat
这是其他修饰符的键码
property NSCapsLockMask : a reference to 65536
property NSControlKeyMask : a reference to 262144
property NSCommandKeyMask : a reference to 1048576
property NSFunctionKeyMask : a reference to 8388608