2011-08-04 11 views
5

मुझे विंडोज एपीआई में SendInput की तरह कुछ चाहिए।सक्रिय अनुप्रयोग के लिए यूनिकोड चरित्र कैसे भेजता है?

मुझे यह विधि दिखाई देती है, मुझे नहीं पता कि यूनिकोड वर्ण को आभासी कुंजी कोड में परिवर्तित करने के लिए वैसे भी है।

CGEventRef CGEventCreateKeyboardEvent (
    CGEventSourceRef source, 
    CGKeyCode virtualKey, 
    bool keyDown 
); 
+0

आप यूनिकोड वर्ण भेजने के लिए SendInput उपयोग कर सकते हैं, लेकिन आप जब से तुम wScan के लिए एक छोटी तक ही सीमित हैं UTF-8 तक सीमित हैं। आपको wxk को 0x00 पर सेट करने और dwFlags में यूनिकोड ध्वज (0x0004) का उपयोग करने की आवश्यकता है। – CaulynDarr

उत्तर

5
CGEventRef e = CGEventCreateKeyboardEvent(NULL, NULL, true); 
CGEventKeyboardSetUnicodeString(e, unicodeStringLength, unicodeString); 
CGEventPost(kCGHIDEventTap, e);  
+4

'CGEventCreateKeyboardEvent' के दूसरे पैरामीटर के रूप में' NULL' को पास करने का अधिकार नहीं है, क्योंकि यह सूचक नहीं है। यह काम करने के लिए होता है, क्योंकि 'NULL' को शून्य के रूप में माना जाता है, जो एक वैध कुंजी कोड है। यह भी ध्यान रखें कि आपको अंत में 'CFRelease (e) 'कहना चाहिए। – JWWalker

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