私の目標は、キーボードから収集された文字をファイルに書き込むことです。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);
代わりは; も機能しませんでした。