■No43346 (たぬき さん) に返信
> どこがおかしいかご指摘いただきたいです!
記述が VB.NET のコードというよりも、VB6 のそれに近い物になっていますね。
また、GetKeyboardState と GetAsyncKeyState を混同しているようにも見えます。
> Dim i As Integer
> For i = 0 To 255
間違いではありませんが、「For i As Integer = 0 To 255」の方が良いかと。
> If (key(i) And &H8001) Then
何のために、&H8001 を And しているのでしょうか?
GetKeyboardState の結果を調べるなら、最上位ビット(キー押下の有無)、
あるいは最下位ビット(トグル状態)の値を見ることになるので、たとえば
If CBool(key(i) And &H80) Then
If (key(i) And &H80) <> 0 Then
If (key(i) And &H80) = &H80 Then
などになるかと思います。