我想将虚拟键转换为WideString。 这就是我到目前为止......
function VKeytoWideString (Key : Word) : WideString;
var
WBuff : array [0..255] of WideChar;
KeyboardState : TKeyboardState;
UResult : Integer;
begin
GetKeyBoardState (KeyboardState);
UResult := ToUnicode(key, MapVirtualKey(key, 0), KeyboardState, WBuff, 0,0);
Result := WBuff;
case UResult of
0 : Result := '';
1 : SetLength (Result, 1);
2 :;
else
Result := '';
end;
end;
它总是返回0,但为什么? 请帮忙。
答案 0 :(得分:4)
您将cchBuff
的{{1}}参数设置为0而不是实际的缓冲区大小,因此该函数无法存储它所翻译的任何字符。
请改为尝试:
ToUnicode()