के लिए कीबोर्ड लेआउट बदलें मैं सी # में एक प्रोग्राम लिख रहा हूं जो पृष्ठभूमि में चलता है और सक्रिय विंडो में कीबोर्ड लेआउट स्विच करने के लिए उपयोगकर्ताओं को हॉटकी का उपयोग करने की अनुमति देता है।अन्य प्रक्रिया
मैं RegisterHotKey उपयोग कर रहा हूँ हॉटकी को पकड़ने के लिए (केवल Windows CTRL + शिफ्ट और एएलटी + शिफ्ट का समर्थन करता है), और यह ठीक काम कर रहा है।
समस्या यह है कि मुझे केंद्रित विंडो के लिए कीबोर्ड लेआउट बदलने के लिए कोई एपीआई नहीं मिल रहा है।
सक्रियेटबोर्डबोर्ड और लोडकीबोर्डआउटआउट केवल कॉलिंग थ्रेड के लिए कीबोर्ड लेआउट बदल सकता है।
क्या कोई जानता है कि एक अलग थ्रेड के लिए कीबोर्ड लेआउट कैसे बदलें (जिस तरह भाषा बार करता है)?
जब आप एक windows-निर्मित हॉटकी का उपयोग कर भाषाओं स्विच, यह अलग धागे को प्रभावित नहीं करता है, यह करता है? – JXG
प्रति थ्रेड कीबोर्ड लेआउट स्विचिंग? सिस्टम-व्यापी लेआउट स्विचिंग के विरोध में? रिकॉर्डिंग के साथ कुछ कर रहे हो? – jcolebrand
@drachenstern: सिस्टम-व्यापी कीबोर्ड लेआउट स्विचिंग जैसी कोई चीज़ नहीं है; सक्रिय कीबोर्ड लेआउट एक प्रति-यूआई-थ्रेड स्थिति है। मैं Alt + Shift को प्रतिस्थापित करने की कोशिश कर रहा हूं ताकि मैं इसे दुर्घटना से दबा न सकूं, इसलिए रिकॉर्डिंग एक विकल्प नहीं है (यदि मैं समझता हूं कि आपका क्या मतलब है)। – SLaks