掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
GetKeyNameText を使うには? (ID:32142)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Virtual-Key Codes から MapVirtualKey GetKeyNameText を使ってキーの名前を取得しようとしているのですが、 以下のコードを実行すると Access violation at address 7C952F39 in module 'ntdll.dll'. Write of address 0044F61C. というエラーで失敗します。どこが間違っているのでしょうか? 環境:winxpsp3 delphi7 procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var KeyScanCode : Integer; KeyName: PChar; begin KeyScanCode := MapVirtualKeyEx(Key, 0, GetKeyboardLayout(0)) shl 16; case Key of // Extended-Key Flag 33..46,91..93,108,111,144,163,165: KeyScanCode := KeyScanCode + $1000000; end; KeyName := ''; if GetKeyNameText(KeyScanCode, KeyName, 128) > 0 then begin Memo1.Lines.Add( Format('VK=%.2x Name=%s',[Key, KeyName]) ); end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.