一つ目の未知の文字列に関しては、特定条件(詳細不明)で発生するようですが、
深刻かどうかは不明です。役立たずでごめんなさい。
で、下記の
コード: 全て選択
'キー状態の取得
Function PressKey(code As Long) As BOOL
If (GetAsyncKeyState(code) And &H8000) = 1 Then
PressKey = TRUE
Else
PressKey = FALSE
End If
End Function
ですが、関数1行目の
If (GetAsyncKeyState(code) And &H8000) = 1 Then
というのを
コード: 全て選択
If GetAsyncKeyState(code) And &H8000 Then
にすると動作するはずです。
GetAsyncKeyStateの戻り値は、キーが押されている時は、(必ずかどうかはわかりませんが)
&HFFFF8000等になります。
And は論理積ですので、
GetAsyncKeyState(code) And &H8000 の演算結果は&H8000になります。
当然この結果は"1"ではありませんので、元のコードだとFalseの処理
ばかりになっていたと思います。