2014-06-16 7 views
5

मैं ब्राउज़र विंडो में कुछ क्लिक कार्यों को स्वचालित करने के लिए जावा के Robot कक्षा का उपयोग कर रहा हूं (एबी)। पहले क्लिक पर, जावा एप्लिकेशन फोकस खो देता है। यदि रोबोट गलत व्यवहार शुरू करता है, तो मैं प्रोग्राम को समाप्त करना चाहता हूं। हालांकि, मैं आसानी से ऐसा नहीं कर सकता क्योंकि रोबोट के पास मेरे माउस का नियंत्रण होता है।मैं एक दुष्ट रोबोट को कैसे मार सकता हूं?

मैं क्या करना चाहता हूं, क्या मेरा प्रोग्राम मुझे किसी प्रकार के सिग्नल के लिए बाहर निकलने के लिए कह रहा है। उदाहरण के लिए, प्रोग्राम "बाहर निकलने" कुंजी दबाए जाने पर बाहर निकल सकता है। हालांकि, मुझे नहीं पता कि जब अनुप्रयोग फोकस में नहीं है तो कीस्ट्रोक के लिए कैसे सुनना है।

मैं ओएसएक्स 10.9 में जावा एसई 6 चला रहा हूं।

मैं इन परिस्थितियों में अपने कार्यक्रम को कैसे समाप्त कर सकता हूं?

संपादित करें: इसे पोस्ट करने के बाद, मुझे एक ही समस्या का समाधान करने वाला एक संबंधित प्रश्न मिला: Listening for input without focus in Java। (हालांकि, यह एक सटीक डुप्लिकेट नहीं है, क्योंकि मेरा प्रश्न थोड़ा व्यापक है।)

+1

"ब्राउज़र विंडो में कुछ क्लिक करने वाले कार्यों को स्वचालित करें" क्या आपने [सेलेनियम] (http://docs.seleniumhq.org/) का उपयोग करने का प्रयास किया था? – NiziL

+0

मुझे नहीं लगता कि आप इसे कर सकते हैं ... मेरा मतलब है कि किसी विशेष कुंजी संयोजन के लिए कीबोर्ड को सुनना, और सादा जावा के साथ यह असंभव है। आप जेएनआई/जेएनए का उपयोग कर सकते हैं और इस मूल संयोजन को संभालने के लिए अपनी मूल परत को कोड कर सकते हैं – BackSlash

+0

@ निज़िल एक ब्राउज़र सिर्फ एक उदाहरण है; रोबोट किसी भी आवेदन के साथ बातचीत कर सकता है। जिस प्रश्न में मुझे रूचि है, वह है कि रोबोट जो कुछ भी कर रहा है उसे बाधित कैसे करें। – augurar

उत्तर

7

एक विकल्प Robot (या नियमित अंतराल पर) प्रत्येक कॉल से पहले माउस स्थिति की जांच करना होगा, यह सत्यापित करने के लिए कि यह अभी भी था जो भी स्थिति में यह पिछली mouseMove 'डी थी। अगर यह एक विसंगति का पता चला, तो यह एक अपवाद फेंक देगा। इस तरह, माउस को मैन्युअल रूप से ले जाने से चीजों को समाप्त करने के लिए उपयोग किया जा सकता है।

यह सुनिश्चित करने के लिए कि यह हमेशा जांचता है, Robot को लपेटने के लिए शायद सबसे अच्छा है। मैं SecondLawObeyingRobot का सुझाव देता हूं।

+0

बहुत चालाक! एक जोखिम है जो माउस को एक महत्वपूर्ण पल पर ले जा रहा है (उदाहरण के लिए जब रोबोट माउस बटन दबा रहा है) कुछ समस्याएं पैदा कर सकता है, लेकिन मुझे लगता है कि यह मेरे उद्देश्यों के लिए काम करेगा। – augurar

+0

'माउस रेलीज' से पहले विसंगति को ध्यान में रखते हुए 'प्रकृति' कुंजीपटल डालने से उस प्रकृति की अधिकांश समस्याओं से बचना चाहिए। कम से कम विंडोज़ (ओएसएक्स के बारे में निश्चित नहीं), 'बचें' ड्रैग को रद्द कर देता है। – Sneftel

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