2011-08-04 19 views
5

Windows APIでSendInputのようなものが必要です。ユニコード文字をアクティブなアプリケーションに送信するにはどうすればよいですか?

私はこの方法を参照していますが、私は、ユニコード文字を仮想キーコードに変換する方法がないことはわかります。

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

あなたは、Unicode文字を送信するためにSendInputを使用することができますが、あなたはwScanための短いに限定されているので、あなたはUTF-8に限定されています。 wVKを0x00に設定し、dwFlagsにユニコードフラグ(0x0004)を設定する必要があります。 – CaulynDarr

答えて

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

ポインタではないので、 'CGEventCreateKeyboardEvent'の2番目のパラメータとして' NULL'を渡すのが正しいとは限りません。 'NULL'は有効なキーコードであるゼロとして扱われるので、動作します。また、最後に 'CFRelease(e)'と言ってください。 – JWWalker

関連する問題