एकाधिक वर्णों को प्रसारित करने के लिए सेंडइनपुट की क्षमताओं का विस्तार
सेंडइनपुट फ़ंक्शन प्रोग्रामर के शस्त्रागार में एक शक्तिशाली उपकरण है, जो सिमुलेशन को सक्षम बनाता है कीबोर्ड इनपुट. हालाँकि, इसकी क्षमता एकल वर्णों को प्रसारित करने तक सीमित नहीं है। यह आलेख बताता है कि एकाधिक वर्णों को प्रभावी ढंग से प्रसारित करने के लिए सेंडइनपुट का लाभ कैसे उठाया जाए।
प्रारंभ में, कोई निम्नलिखित के समान तकनीक का उपयोग करने का प्रयास कर सकता है:
INPUT in;
in.type = INPUT_KEYBOARD;
in.ki.wScan = 0;
in.ki.time = 0;
in.ki.dwExtraInfo = 0;
in.ki.wVk = 0x53 0x54;
SendInput(2, &in, sizeof(INPUT));
दुर्भाग्य से, यह कोड इच्छानुसार निष्पादित होने में विफल रहेगा। इसका कारण सेंडइनपुट के पहले पैरामीटर में निहित है, जो पास किए गए इनपुट संरचनाओं की संख्या निर्दिष्ट करता है। इस मामले में, केवल एक संरचना प्रदान की जाती है, जो सेंडइनपुट को पास किए गए 2 के मान के विपरीत है।
इसके अलावा, यह है एकाधिक वर्चुअल कुंजियाँ निर्दिष्ट करने के लिए एकल INPUT संरचना का उपयोग करना संभव नहीं है। इस उद्देश्य को प्राप्त करने के लिए, INPUT संरचनाओं की एक सरणी घोषित की जानी चाहिए, जिसमें प्रत्येक जोड़ी एक कीडाउन और कीअप घटना का प्रतिनिधित्व करती है। इस प्रकार, उपरोक्त उदाहरण के लिए, चार INPUT संरचनाओं की आवश्यकता है।
एक अन्य विचार KEYEVENTF_UNICODE ध्वज से संबंधित है। इस ध्वज का उपयोग करते समय, वर्चुअल कुंजियों के बजाय वास्तविक यूनिकोड कोडपॉइंट निर्दिष्ट किए जाते हैं। प्रत्येक कोडपॉइंट एक UTF-16 कोडयूनिट से मेल खाता है, जिसका अर्थ है कि यदि यूनिकोड कोडपॉइंट को एक सरोगेट जोड़ी की आवश्यकता होती है, तो डाउन/अप INPUT संरचनाओं के दो सेट आवश्यक होंगे।
निष्कर्ष निकालने के लिए, सही दृष्टिकोण में एक सरणी घोषित करना शामिल है इनपुट संरचनाएं, यह सुनिश्चित करती हैं कि संरचनाओं की संख्या प्रसारित किए जाने वाले वर्णों की संख्या से मेल खाती है। इसके अतिरिक्त, यदि KEYEVENTF_UNICODE कार्यरत है, तो यूनिकोड कोडपॉइंट को सही ढंग से प्रबंधित किया जाना चाहिए और संबंधित डाउन/अप इवेंट निर्दिष्ट किए जाने चाहिए। इन दिशानिर्देशों का पालन करके, डेवलपर्स आसानी और दक्षता के साथ कई पात्रों को प्रसारित करने के लिए सेंडइनपुट की पूरी क्षमता का उपयोग कर सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3