0

私の目標は、キーボードから収集された文字をファイルに書き込むことです。ToUnicodeEx 関数などの使用方法を理解しようとしています。私のコードは英語でのみ機能します。キーボードを別の言語に変換しても、まだ英語の文字で入力されます。

なにが問題ですか?

これは関連するコードです:

dwThreadId = GetWindowThreadProcessId(hwnd, &dwProcessId);
BYTE *kState = (BYTE*)malloc(256);
GetKeyboardState(kState);
hkl = GetKeyboardLayout(dwThreadId);
wchar_t UniChar[16] = {0};
//UINT virtualKey = MapVirtualKeyEx((UINT)character, MAPVK_VK_TO_CHAR, hkl);
UINT virtualKey = character;
ToUnicodeEx(character, virtualKey, (BYTE*)kState, UniChar, 16, NULL, hkl);
//printf("this is the char: %lc ",UniChar[0]);
//fwrite (UniChar , sizeof(wchar_t), wcslen(UniChar), file);
fputws(UniChar,file);
free(kState);
//fputc(character,file);
fclose(file); 
break;

使ってみた

UINT virtualKey = MapVirtualKeyEx((UINT)character, 2, hkl);

代わりは; も機能しませんでした。

4

0 に答える 0