9
votes

Comment envoyer des commandes de clavier et de souris au système d'exploitation sous-jacent à l'aide de Ruby?

Y a-t-il un système d'exploitation neutre pour RUBY pour envoyer des événements de clavier et de souris au système d'exploitation sous-jacent?

Une approche évidente (à moi) consiste à utiliser les liaisons Ruby / Java et utilisez Java.Awt.Robot, mais cela semble juste idiot.


2 commentaires

Quel système d'exploitation? Chaque plate-forme a ses propres liaisons de rubis.


"Système d'exploitation neutre". Si aucune bibliothèque de ce type n'existe, alors Windoze et Mac.


3 Réponses :


7
votes

pour Mac: strong> xxx pré>

alors vous pouvez le tester avec un script comme celui-ci: p>

require "win32ole"

wsh = WIN32OLE.new("WScript.Shell")
wsh.Run("Notepad.exe")
while not wsh.AppActivate("Notepad")
  sleep .1
end
wsh.SendKeys("Look Ma, keystrokes!")


2 commentaires

Qu'en est-il de Linux (Ubuntu)?


@Andreybotalov je ne sais pas. Quelqu'un devrait poster une réponse pour cela. :-)



5
votes

Pour l'exhaustivité, je pensais inclure une solution si vous utilisez Linux.

sur Linux, pour automatiser les frappes de frappe que vous pouvez utiliser xdotool. Il y a aussi un joyau pour Ruby, mais il n'est pas vraiment nécessaire d'envisager que l'envoi de frappe est facile comme:

% x (touche xdotool Super + w) #Ce appuyer sur les touches super et w simultaneoulsy

Il y a aussi des événements de la souris aussi.


0 commentaires

0
votes

Malheureusement, RB-AppleScript code> est un peu daté et bonky.

Pour le Mac, vous pouvez utiliser: P>

%x(osascript -e 'tell application "System Events" to keystroke "Look Ma, keystrokes!"')


0 commentaires