2011-12-02 18 views
5

में माउस क्लिक का पता लगाएं मैं पृष्ठभूमि में बैश स्क्रिप्ट को चलाने का तरीका सोच रहा हूं जो कुछ भी करेगा (यानी कोई स्क्रिप्ट, या कमांड, या जो भी हो) जब भी कोई उपयोगकर्ता माउस पर क्लिक करता है। टर्मिनल बंद होने पर भी मैं इसे जारी रखना चाहता हूं। कोई विचार? धन्यवाद!बैश स्क्रिप्ट

+0

क्या आप अपनी खिड़की प्रणाली को बंद विंडो से इनपुट स्वीकार करने के लिए प्राप्त कर सकते हैं? यदि आप कर सकते हैं तो मैं बहुत आश्चर्यचकित हूं। एक सक्रिय माउस होने का मानना ​​है कि इनपुट को स्वीकार करने के लिए कुछ प्रक्रिया और घटना-लूप है। यदि आप एक विंडो बंद करते हैं, तो आपको प्रसंस्करण जारी रखने के लिए सॉफ़्टवेयर की बाहरी परत पर भरोसा करना होगा, और इसका मतलब है कि एक स्क्रिप्ट चलाने के लिए, सॉफ़्टवेयर की आपकी बाहरी परत को स्क्रिप्ट के बारे में जानना होगा। हो सकता है कि आप विंडो बंद होने से पहले इसे मूल प्रक्रिया (अत्यधिक संभावना से) पर राइट-क्लिक ईवेंट के रूप में पंजीकृत कर सकें। और बैश स्क्रिप्ट आमतौर पर माउस क्लिक (आईएमओ) नहीं लेते हैं। क्षमा करें, लेकिन शुभकामनाएँ। – shellter

+0

क्या आप किसी चरित्र टर्मिनल या एक्स के बारे में बात कर रहे हैं? –

+0

मुझे यहां दो अलग-अलग प्रश्न दिखाई देते हैं। पहले के लिए, दूसरे के लिए http://stackoverflow.com/questions/5966903/how-to-get-mousemove-and-mouseclick-in-bash देखें, आमिर के उत्तर को देखें। – ninjalj

उत्तर

4

आप X11 का उपयोग कर रहे हैं, तो आप माउस की घटनाओं को पकड़ने के लिए xdotool कोशिश कर सकते हैं

यह होगा कुछ की तरह:

xdotool search --onlyvisible . behave %@ mouse-click getmouselocation 

xdotool manual

आप पृष्ठभूमि में स्क्रिप्ट चलाने के लिए चाहते हैं तो आप उपयोग कर सकते हैं:

./myscript.sh &>/dev/null & 
0

टी रखने के लिए वह टर्मिनल बंद होने पर भी स्क्रिप्ट चल रहा है, आप nohup आज़मा सकते हैं।

2

आप सिर्फ माउस क्लिक (या पहिया घटना) पर xterm में bash कमांड को चलाने के लिए आप इस उदाहरण की कोशिश कर सकते चाहते हैं:

$ echo -e "\e[?1000h"

$ while read -n 6; do echo hellowworld; done

इस (पहिया घटना के लिए है क्लिक के लिए इसके बजाय 12 सेट करें)

संबंधित मुद्दे