كيفية إرسال أوامر لوحة المفاتيح والماوس إلى نظام التشغيل الأساسي باستخدام روبي؟

StackOverflow https://stackoverflow.com/questions/1446327

  •  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!"')
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top