VB6でのVirtualKeyCode


ヒロボ  2007-02-23 18:44:37  No: 98098

はじめまして。。。
初めてここに書き込みをします。
VB6でタイマーを使用し常時、GetKeyStateを使用し押されたキーを取得するテストを行っているのですが、漢字キーが押されたとき&H19が返ってこなければいけないはずなのに返ってこず、&HF3のところが&HF4に切り替わります。

VirtualKeyCodeでいう&HF3と&HF4は、どういう意味(なにかがトグル状態?)
なのでしょうか?  

//VitualKeyCode//
http://homepage2.nifty.com/qta/work/vk_code.htm


ヒロボ  2007-02-23 18:56:28  No: 98099

追記
他のPCでも試してみましたが、漢字キーを押して変わるところは
つぎの3つです。
&HF2<->&HF0
&HF3<->&HF4
&HF5<->&HF6

&HFBがずっと押されています;
GetKeyStateがおかしいのかな?


りっきぃ  2007-02-23 21:59:54  No: 98100

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwinui/html/_win32_getkeystate.asp

ここのリファレンスを見る限り、GetKeyStateは仮想キーコードを引数で指定してそのキーが押されているかどうかを返す関数ですね。
押されているキーが何かを返してくれる関数ではありません。
ですから&H19が返ってくることはないと思います。


ヒロボ  2007-02-23 23:15:15  No: 98101

<押されているキーが何かを返してくれる関数ではありません。
すみません、言い方が悪かったようです。<返すという表現は誤り
もちろん返さないのは理解しています。^^
僕が行ったテストでは
Timerイベント内で
Dim VK as Long
Dim Ans_ as String
VK = 0
Do
   DoEvents
   if GetKeyState(VK) < 0 then
        Ans_ = Ans_ & hex(vk) & ","
   end if
   VK = VK + 1
Loop Until VK > 255
Text1.text = mid(Ans_,1,len(Ans_)-1)

という処理をしています。


大吉末吉  2007-02-23 23:42:17  No: 98102

提示されたコードを試して見ましたが、
漢字キー(私のPCのキーボードでは「ALT」+「半角/全角」キー)を押したら、
「19」が、一覧に出てきますけど・・・


ヒロボ  2007-02-24 00:01:40  No: 98103

<漢字キー(私のPCのキーボードでは「ALT」+「半角/全角」キー)を押し
たら、
<「19」が、一覧に出てきますけど・・・

僕もやってみました、19がでてきましたね〜
(よく考えてみたらALT+半角/全角 = 漢字キーですよね;)
半角/全角キーのみでは、&HF3<->&HF4で判別すればいいですね。

他の
&HF2<->&HF0
&HF5<->&HF6
はどう言った意味なのでしょう。


ヒロボ  2007-02-24 00:59:24  No: 98104

http://www.math.msu.su/~vfnik/WinApi/other/virtualkeycodes.htmlに
Const VK_OEM_AUTO = &HF3
Const VK_OEM_ENLW = &HF4
Const VK_OEM_BACKTAB = &HF5
Const VK_ATTN = &HF6
と書いてありますが、意味不明です。。。。
どなたか説明お願いします>_<


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加