私の古い質問はすでに取り残されているようです
方法が見つからず困っています
キーを押したときにアプリケーションに何かをさせたい。たとえば、ユーザーが F1 を押すと、F1 が押されている限りキー F1 が送信され、ユーザーが F1 を離すとキー F1 は送信されません。
F1 リリース前にアプリケーションで F1 キーを押し続ける方法が見つかりませんでした
ここにコードがあります
Imports System.Windows.Forms
Imports MouseKeyboardActivityMonitor
Imports MouseKeyboardActivityMonitor.WinApi
Public Class Form1
Private Declare Function GetAsyncKeyState Lib "User32" (ByVal vKey As Keys) As Integer
Public Declare Sub mouse_event Lib "User32" Alias "mouse_event" (ByVal dwFlags As Integer, ByVal dx As Integer, ByVal dy As Integer, ByVal cButtons As Integer, ByVal dwExtraInfo As Integer)
Public Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down
Public Const MOUSEEVENTF_LEFTUP = &H4 ' left button up
Private WithEvents myKeyboardHookManager As KeyboardHookListener
Dim hookEnabled As Boolean
Public Sub New()
InitializeComponent()
myKeyboardHookManager = New KeyboardHookListener(New GlobalHooker())
myKeyboardHookManager.Enabled = True
End Sub
Private Sub HookManager_KeyDown(sender As Object, e As KeyEventArgs)
Select Case e.KeyCode
Case Keys.F1 To Keys.F9
SendKeys.Send("{F" + Convert.ToChar(e.KeyValue - 63) + "}")
End Select
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If hookEnabled Then
hookEnabled = False
RemoveHandler myKeyboardHookManager.KeyDown, AddressOf HookManager_KeyDown
Else
hookEnabled = True
AddHandler myKeyboardHookManager.KeyDown, AddressOf HookManager_KeyDown
End If
End Sub
End Class
このコードは正常に機能しますが、一度しか押せません。私が欲しいのは、私が解放する前に押し続けることです
助けてくれてありがとう