2013-05-12 4 views
5

में सिस्टम स्तर पर कीबोर्ड इनपुट अनुकरण करें मैं गेम को नियंत्रित करने और बाएं और दाएं तीर जैसे कीबोर्ड इनपुट सिमुलेट करके बाहरी आईएमयू डिवाइस का उपयोग करके मुफ्त ट्रैकिंग कर रहा हूं।सी ++

मैंने बाएं और दाएं तीर दबाकर अनुकरण करने के लिए सी ++ में SendInput() फ़ंक्शन को कॉल करने के साथ सफलतापूर्वक किया है। हालांकि, यह वास्तव में एक गेम एप्लिकेशन में काम नहीं करता है (यहां तक ​​कि एक छोटे फ़्लैश खेल के लिए भी।)

मैंने एमएसडीएन पर खोज की और पाया कि SendInput() केवल एक ही अखंडता स्तर के अनुप्रयोगों में काम करता है। तो इस अखंडता की समस्या को पार करने के लिए सिस्टम स्तर पर इस कीबोर्ड इनपुट सिमुलेशन को पूरा करने का कोई तरीका है?

धन्यवाद ~

+0

यह हमेशा मेरे लिए काम करता है, लेकिन आपको कीबोर्ड कीबोर्ड या फिर कुछ चाहिए। – chris

+0

क्या आप मुझे बता सकते हैं कि SendInput() के लिए आप किस प्रकार का एप्लिकेशन उपयोग कर रहे हैं? – Tianyu

+0

यदि मैं सही ढंग से समझता हूं, तो आपके पास दो एप्लिकेशन हैं: 1 जो आईएमयू ट्रैकिंग डेटा प्राप्त करता है और आगे इसे कीबोर्ड ईवेंट के रूप में प्राप्त करता है, और 1 जो कुंजीपटल इनपुट प्राप्त करता है और इसे फ्लैश गेम में कमांड के रूप में अनुवाद करता है। क्या आपने SendMessage फ़ंक्शन का उपयोग करके कीबोर्ड ईवेंट, WM_KEYDOWN, WM_KEYUP मैन्युअल रूप से भेजने का प्रयास किया था। –

उत्तर

1

नहीं अपने प्रश्न के लिए एक सीधा जवाब है, लेकिन एक वैकल्पिक सुझाव।

साइटक (गेम उपकरणों की बड़ी श्रृंखला का निर्माता) हमेशा एक ही कार्य को पूरा करने के लिए वर्चुअल कीबोर्ड/माउस ड्राइवर का उपयोग करता है। मैं सुझाव दूंगा कि आप वही करते हैं। या आप अपने डिवाइस को हार्डवेयर स्तर पर एक छिपा-अनुपालन कर सकते हैं, इसलिए यह किसी भी ड्राइवर के बिना कीबोर्ड/माउस/जॉयस्टिक का अनुकरण कर सकता है।

+0

मुझे लगता है कि आप एक हार्डवेयर स्तर पर एक छिपा अनुपालन डिवाइस विकसित करने के बारे में सही हैं। वर्चुअल ड्राइवर भी एक विकल्प है। धन्यवाद – Tianyu