VB.NetのVirtual-Keyステートメントで変数を使用しようとしていますが、エラーが発生しています。正しい構文は何ですか?変数がなければ、コードは次のようになります。VB.NetのVirtual-Keyステートメントで変数を使用する方法
<DllImport("user32.dll")> _
Public Shared Sub keybd_event(bVk As Byte, bScan As Byte, dwFlags As UInteger, dwExtraInfo As UInteger)
End Sub
Const VK_1 As Integer = &H31
keybd_event(VK_1, 0, 0, 0)
keybd_event(VK_1, 0, KEYEVENTF_KEYUP, 0)
私がやろうとしている:「数字」が変数である
keybd_event(digit, 0, 0, 0)
keybd_event(digit, 0, KEYEVENTF_KEYUP, 0)
を。
Dim digit as Byte = "VK_" & 1
Dim digit as Integer = "VK_" & 1
Dim digit as String = "VK_" & 1
しかし、私はエラーを取得する:私が試してみた 『『バイト』を入力するための有効なではありません「」変換は、文字列から』 VK_1と "文字列" VK_1 "から" Integer "への変換は無効です。"
私が試してみた:
keybd_event(VK_digit, 0, 0, 0)
しかし、エラーが発生しました「VK_digitが宣言されていないことは、その保護レベルにアクセスできないことがあります。。」
また、刺し身をバイトに変換し、文字列にInteger.Parseを使用してみましたが、それもエラーの原因となりました。
すばらしい、ありがとう!両方のソリューションがうまく機能します。私は決してそれを考え出さなかったでしょう。 – user3080392
@ user3080392:私は助けてうれしいです! 2番目のメソッドは、文字列をキー列挙型に解析します。つまり、キーのいずれかの正しい名前を記述する限り、文字列を使用できます。例えば、 '' ControlKey "'は 'Keys.ControlKey'に解析され、大文字または小文字の_を使用するかどうかは関係ありません(現在' True'に設定されているパラメータで指定されています)_ケーシングの種類。例えば '' conTRolKEy ''も動作します。 –