Bonjour Je sais que je peux utiliser quelque chose comme AppleScript pour contrôler les différents aspects des systèmes d'exploitation comme les entrées clavier:AppleScript sous Mac OS X (Mac OS) et le faible niveau C (alternatif Objective-C
osascript -e 'tell application "System Events" to key code 45'
ou clique souris :
osascript -e 'tell app "System Events" to click at {100,200}'
et bien d'autres fonctionnalités comme le volume haut/bas, app ouvrir/fermer, aller à l'URL dans le navigateur Web
maintenant, je considère comment pourrais-je contrôler cela sans Applescript sur OS X (Mac OS). JE pensez à une API de bas niveau, de préférence en C (éventuellement en Objective-C) qui pourrait faire des choses similaires. Je m'intéresse principalement au contrôle du logiciel souris/clavier/pad (comme si je vais écrire un clavier virtuel), à l'ouverture d'applications, à l'invocation de raccourcis dans les applications. Je pense que je vais utiliser Applescript à la fin et exécuter ses scripts via C. Mais je suis également intéressé par plus de programmation de bas niveau et les bibliothèques en C?
Quelle est la meilleure façon d'exécuter de tels scripts Apple à partir d'autres langages comme C? Je pense à quelque chose comme
system(osascript -e 'tell application "System Events" to key code 45')
Mais peut-être il y a de meilleures fonctions/bibliothèques comme osascript("here cmd");
Oubliez C pour la programmation spécifique au Mac; tout ce qui est intéressant nécessite Cocoa, utilisez ObjC. OS X dispose d'un pont d'événements Apple pour ObjC, mais c'est un tas de conneries. Le moyen le plus rapide, le plus simple et le plus fiable consiste à appeler les gestionnaires AppleScript directement depuis ObjC via le pont AppleScript-ObjC. Pour une manipulation directe de l'interface graphique, utilisez les API Accessibility d'OS X, mais évitez l'automatisation de l'interface graphique comme la peste car elle est ridiculement fragile et fragile avec une portabilité abyssale. Selon ce que vous faites, vous pourriez trouver une solution existante comme Hammerspoon un meilleur choix. – foo
Mais je peux exécuter applescript de C comme system() etc –
Je pense que Objective-C est également appelable de C? cette API Quartz Event Services https://developer.apple.com/library/mac/documentation/Carbon/Reference/QuartzEventServicesRef/#//apple_ref/c/func/CGEventCreateKeyboardEvent –