كيفية إرسال أوامر لوحة المفاتيح والماوس إلى نظام التشغيل الأساسي باستخدام روبي؟
-
22-07-2019 - |
سؤال
هل هناك طريقة محايدة لنظام التشغيل يمكن لروبي من خلالها إرسال أحداث لوحة المفاتيح والماوس إلى نظام التشغيل الأساسي؟
أحد الأساليب الواضحة (بالنسبة لي) هو استخدام روابط Ruby/Java واستخدام java.awt.Robot، لكن هذا يبدو سخيفًا.
المحلول
لل ماك:
gem install rb-appscript
ثم يمكنك اختباره باستخدام برنامج نصي مثل هذا:
require "rubygems"
require "appscript"
include Appscript
app("TextEdit").activate
app("System Events").keystroke("Look Ma, keystrokes!")
للنوافذ: (غير مجرب، مستعارة من هذا الموضوع)
require "win32ole"
wsh = WIN32OLE.new("WScript.Shell")
wsh.Run("Notepad.exe")
while not wsh.AppActivate("Notepad")
sleep .1
end
wsh.SendKeys("Look Ma, keystrokes!")
نصائح أخرى
لأجل اكتمال، ظننت انني سوف تشمل حل لأنه إذا كنت تستخدم لينكس.
في لينكس، لأتمتة ضربات المفاتيح التي يمكنك استخدامها xdotool. هناك أيضا الأحجار الكريمة لروبي، ولكنها ليست المطلوبة حقا بالنظر إلى أن توجيه ضربات المفاتيح هي سهلة على النحو التالي:
و%x(xdotool key super+w) #this would press the keys super and w simultaneoulsy
وهناك أيضا أحداث الماوس أيضا.
للأسف، rb-applescript
قليلا مؤرخة ومتزعزع.
لجنة الهدنة العسكرية، قد ترغب في استخدام:
%x(osascript -e 'tell application "System Events" to keystroke "Look Ma, keystrokes!"')