Как я могу вернуть 1, когда кнопка fnнажата, и 0 в противном случае?
Я нашел эту страницу , на которой утверждается, что у нее есть решение, но оно основано на файле сценария внешней оболочки (я бы предпочел чистое решение AppleScript, если это возможно), который я не могу загрузить, потому что он перенаправляет меня через некоторые странные голландские сайты мошенников.
На самом деле цель этого состоит в том, чтобы иметь способ проверки комбинаций функциональных клавиш + клавиш fn в ControllerMate, у которого, похоже, нет способа проверить, нажата ли fn или нет.
Прямо из поста Оскара ...
property vers : "1.0"
my isModifierKeyPressed("function") // the only addition to his raw script
on isModifierKeyPressed(checkKey)
set modiferKeysDOWN to {command_down:false, option_down:false, control_down:false, shift_down:false, caps_down:false, numlock_down:false, function_down:false}
if checkKey = "" or checkKey = "option" or checkKey = "alt" then
if (do shell script "/usr/bin/python -c 'import Cocoa; print Cocoa.NSEvent.modifierFlags() & Cocoa.NSAlternateKeyMask '") > 1 then
set option_down of modiferKeysDOWN to true
end if
end if
if checkKey = "" or checkKey = "command" then
if (do shell script "/usr/bin/python -c 'import Cocoa; print Cocoa.NSEvent.modifierFlags() & Cocoa.NSCommandKeyMask '") > 1 then
set command_down of modiferKeysDOWN to true
end if
end if
if checkKey = "" or checkKey = "shift" then
if (do shell script "/usr/bin/python -c 'import Cocoa; print Cocoa.NSEvent.modifierFlags() & Cocoa.NSShiftKeyMask '") > 1 then
set shift_down of modiferKeysDOWN to true
end if
end if
if checkKey = "" or checkKey = "control" then
if (do shell script "/usr/bin/python -c 'import Cocoa; print Cocoa.NSEvent.modifierFlags() & Cocoa.NSControlKeyMask '") > 1 then
set control_down of modiferKeysDOWN to true
end if
end if
if checkKey = "" or checkKey = "caps" or checkKey = "capslock" then
if (do shell script "/usr/bin/python -c 'import Cocoa; print Cocoa.NSEvent.modifierFlags() & Cocoa.NSAlphaShiftKeyMask '") > 1 then
set caps_down of modiferKeysDOWN to true
end if
end if
if checkKey = "" or checkKey = "numlock" then
if (do shell script "/usr/bin/python -c 'import Cocoa; print Cocoa.NSEvent.modifierFlags() & Cocoa.NSNumericPadKeyMask'") > 1 then
set numlock_down of modiferKeysDOWN to true
end if
end if
--Set if any key in the numeric keypad is pressed. The numeric keypad is generally on the right side of the keyboard. This is also set if any of the arrow keys are pressed
if checkKey = "" or checkKey = "function" or checkKey = "func" or checkKey = "fn" then
if (do shell script "/usr/bin/python -c 'import Cocoa; print Cocoa.NSEvent.modifierFlags() & Cocoa.NSFunctionKeyMask'") > 1 then
set function_down of modiferKeysDOWN to true
end if
end if
--Set if any function key is pressed. The function keys include the F keys at the top of most keyboards (F1, F2, and so on) and the navigation keys in the center of most keyboards (Help, Forward Delete, Home, End, Page Up, Page Down, and the arrow keys)
return modiferKeysDOWN
end isModifierKeyPressed
если Fn не работает
Result:
{command_down:false, option_down:false, control_down:false, shift_down:false, caps_down:false, numlock_down:false, function_down:true}
еще
Result:
{command_down:false, option_down:false, control_down:false, shift_down:false, caps_down:false, numlock_down:false, function_down:false}
только густи
Кен Джонс