मैं इनपुट डेमॉन में कीस्ट्रोक्स इंजेक्ट करने की कोशिश कर रहा हूं ताकि बैश स्क्रिप्ट से टाइपिंग अनुकरण कर सके। क्या यह संभव है, और यदि ऐसा है, तो मैं इसे कैसे कर सकता हूं?
मैं इनपुट डेमॉन में कीस्ट्रोक्स इंजेक्ट करने की कोशिश कर रहा हूं ताकि बैश स्क्रिप्ट से टाइपिंग अनुकरण कर सके। क्या यह संभव है, और यदि ऐसा है, तो मैं इसे कैसे कर सकता हूं?
जवाबों:
यदि आप एक्स स्तर पर काम कर रहे हैं (गाइल्स के प्रश्न के अनुसार), तो xdotool का उपयोग करें जैसे:
xdotool key KEYSTROKE_SPECIFIER
जहां KEYSTROKE_SPECIFIER "a" या "F2" या "कंट्रोल + जे" जैसा कुछ हो सकता है
संपादित करें: मुझे खेद है कि गिल्स के सवाल पर आपकी प्रतिक्रिया याद आई। मैं इस प्रतिक्रिया को एक्स-केस के समाधान के रूप में यहाँ छोड़ दूँगा।
xte
एक ही स्तर पर चल रही है।
uinput
चालक का उपयोग करें । मुझे नहीं लगता कि इसके लिए कोई उपयोगिता है; आपको C कोड को थोड़ा लिखना या अनुकूलित करना होगा। संक्षेप में:
#include <fcntl.h>
#include <ioctl.h>
#include <unistd.h>
#include <linux/input.h>
#include <linux/uinput.h>
/* Set up a fake keyboard device */
fd = open("/dev/uinput", O_WRONLY | O_NONBLOCK); // or /dev/input/uinput
ioctl(fd, UI_SET_EVBIT, EV_KEY);
struct uinput_user_dev uidev = …;
write(fd, &uidev, sizeof(uidev));
ioctl(fd, UI_DEV_CREATE);
/* Send an event */
struct input_event ev = …;
write(fd, &ev, sizeof(ev));
/* Clean up */
ioctl(fd, UI_DEV_DESTROY);
close(fd);
अधिक संपूर्ण संदर्भ:
यदि आप X प्रोग्राम्स के साथ काम नहीं कर रहे हैं, जिसमें कुंजियों को भेजा जा सकता है, तो आप संभवतः expect
अन्य इंटरैक्टिव शेल प्रोग्राम चलाने के लिए एक आसान और बहुत ही विन्यास योग्य प्रोग्राम की तलाश कर रहे हैं जैसे कि कोई उपयोगकर्ता टर्मिनल को नियंत्रित कर रहा था। आप विभिन्न इनपुट के साथ विभिन्न आउटपुट पर प्रतिक्रिया करने के लिए प्रोग्रामेटिक प्रतिक्रियाओं को सेटअप कर सकते हैं।
मैंने कुछ पायथन कोड लिखे जो ऐसा करता है। आप इसे मेरे ओपन सोर्स प्रोजेक्ट में पा सकते हैं।
http://code.google.com/p/pycopia/source/browse/trunk/core/pycopia/OS/Linux/event.py
यदि आप उस मॉड्यूल को स्क्रिप्ट के रूप में रूट करते हैं, तो आप कार्रवाई में एक डेमो देख सकते हैं।
यह मूल कार्यक्षमता किसी अन्य प्रोजेक्ट, पॉवरड्रोइड के लिए विस्तारित की गई थी, जो कि एम्बेडेड सिस्टम (Android) के लिए अधिक ठोस कार्यान्वयन प्रदान करता है।
http://code.google.com/p/powerdroid/source/browse/trunk/src/droid/devices.py