2010-10-07 19 views
1

je tentais de répliquer « prendre un raccourci capture d'écran » (cmd + shift + 3) par un pont de cacao et les scriptsdans le script de script comment puis-je envoyer un raccourci avec 2 modificateurs?

SystemEventsApplication * sysEvent = [SBApplication applicationWithBundleIdentifier:@"com.apple.systemevents"]; 
[sysEvent keyCode:20 using:SystemEventsEMdsCommandDown]; 

mais je ne peux pas envoyer plus d'un SystemEventsEMds à la méthode.
AppleScript est aussi facile que

key code 20 using {command down, shift down} 
+0

Pourquoi ne pas utiliser CGWindowList pour faire vous-même la capture d'écran? –

+0

merci, je vais développer cela pour ce cas précis, mais j'étais curieux sur la façon de résoudre le problème général de modificateur – G3z

Répondre

0

Je résolu un peu cela. J'essayais d'obtenir un cmd + shift + 3 qui sert, comme vous le savez tous, à prendre une capture d'écran. shift + 3 est dans le clavier italien = à « £ » si

[sysEvent keystroke:@"£" using:SystemEventsEMdsCommandDown]; 

le tour est joué Je me demande encore comment je l'ai fait avec un cmd + opt + quelque chose et comment gérer la localisation. ..

+1

Cela ne généralisera pas à d'autres dispositions de clavier. Dans les configurations de clavier US et Dvorak, £ est * option * -3, ce qui serait en fait ⌘⌥3 plutôt que ⇧⌘3. C'est pourquoi vous devriez vous en tenir aux keycodes (et ne simulez que des raccourcis clavier quand il n'y a pas d'alternative comme prendre la capture d'écran vous-même). –