6 votes

Envoi de frappes à une fenêtre lorsqu'elle perd le focus

J'exécute des machines virtuelles pour des tests sur un deuxième espace à l'aide de Virtualbox, et le problème est que lorsque je suis sur l'espace principal, la machine virtuelle continue à utiliser beaucoup de temps de CPU et tue la batterie.

Actuellement, j'essaie de me rappeler de mettre manuellement en pause la machine virtuelle chaque fois que je retourne à mon espace principal, mais cela devient fastidieux et j'aimerais le faire automatiquement.

La question est donc la suivante :

Comment puis-je envoyer la combinaison de touches de raccourci CTRL + CMD + P à la machine virtuelle pour la mettre en pause chaque fois qu'elle perd le focus, ou alternativement chaque fois que je retourne à l'espace 1.

Idéalement, il devrait également renvoyer la combinaison lorsque je passe à l'espace sur lequel fonctionne Virtualbox, mais ce n'est pas aussi important.

[modifier]

J'ai pu résoudre le problème en utilisant un logiciel tiers - Keyboard Maestro déclenchant l'outil VBoxManage en ligne de commande et envoyant une commande Pause de cette manière. Mais il doit y avoir un moyen de le faire sans payer pour un logiciel.

1voto

webmarc Points 1653

Un moyen de le déclencher avec un raccourci clavier global (et sans avoir à revenir en arrière) est de créer un petit applescript qui le fera pour vous. Je ne suis pas familier avec le Windows de Virtualbox, vous devrez donc modifier le script ci-dessous pour l'adapter à vos besoins. Vous pouvez l'exécuter tel quel, mais notez que 1) le terminal ne prend PAS le focus lorsque vous exécutez ce script, il reste en arrière-plan et 2) lorsque vous basculez dans le terminal, l'inspecteur s'affiche.

tell application "System Events"
  tell process "Terminal"
  click menu item "Show Inspector" of menu "Shell" of menu bar 1
  end tell
end tell

Je suppose que la commande Pause VM sera disponible dans les menus VB. Si ce n'est pas le cas, veuillez m'indiquer dans les commentaires où se trouve la commande, et je pourrai mettre à jour la réponse en conséquence.

Une fois que vous avez testé l'applescript, utilisez Automator pour créer un service : cela vous permettra de l'activer avec un raccourci clavier global, sans avoir à changer d'application ou quoi que ce soit.

  1. Lancer l'automate
  2. Nouveau projet s'il charge un ancien projet, et sélectionnez "Service".
  3. Dans le champ de recherche, entrez "script" pour filtrer les options et double-cliquez sur "Run Applescript".
  4. Collez l'applescript là-dedans.
  5. Enregistrez-la, donnez-lui un nom comme "Pause the dang VM", et quittez.

Ensuite, pour lui donner un raccourci clavier global :

  1. Ouvrez les Préférences système -> Clavier -> onglet Raccourcis.
  2. Sélectionnez "Services" dans le volet de gauche
  3. Faites défiler jusqu'au bas du volet de droite, et vous devriez voir votre nouveau service
  4. Cliquez sur "aucun" à droite de votre nouveau service et vous pouvez créer un raccourci.

Ainsi, en cas d'oubli, il suffit d'appuyer sur une touche au lieu de changer d'application.

REMARQUE : vous devez autoriser Automator à contrôler l'ordinateur dans Préférences système -> Sécurité et confidentialité -> Confidentialité -> Accessibilité.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X