Delphi VirtualKey到WideString

时间:2012-06-01 01:45:33

标签: delphi winapi keyboard delphi-7

我想将虚拟键转换为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,但为什么? 请帮忙。

1 个答案:

答案 0 :(得分:4)

您将cchBuff的{​​{1}}参数设置为0而不是实际的缓冲区大小,因此该函数无法存储它所翻译的任何字符。

请改为尝试:

ToUnicode()