gpt4 book ai didi

Delphi VirtualKey 到 WideString

转载 作者:行者123 更新时间:2023-12-03 15:50:38 28 4
gpt4 key购买 nike

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

最佳答案

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

试试这个:

function VKeytoWideString (Key : Word) : WideString; 
var
WBuff : array [0..255] of WideChar;
KeyboardState : TKeyboardState;
UResult : Integer;
begin
Result := '';
GetKeyBoardState (KeyboardState);
ZeroMemory(@WBuff[0], SizeOf(WBuff));
UResult := ToUnicode(key, MapVirtualKey(key, 0), KeyboardState, WBuff, Length(WBuff), 0);
if UResult > 0 then
SetString(Result, WBuff, UResult)
else if UResult = -1 then
Result := WBuff;
end;

关于Delphi VirtualKey 到 WideString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10843429/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com