ボタンを押すだけでマウスを繰り返し左クリックするビデオゲームで使用する「オートクリッカー」を作成しています。オートクリッカー ウィンドウがフォーカスされていなくても、グローバルに機能するホットキーを設定したいと考えています。何らかの理由で、クリックを停止するためのホットキー (F2) のみが現在機能しています。F1 キーはクリックを開始することになっていますが、現在のところ、開始する唯一の方法は、フォームの [開始] ボタンを手動で押すことです。コードをバージョン 4.0 の .NET Framework にデプロイしようとするとエラーが発生するようですが、3.5 に設定するとこの問題は解決します。F2 ホットキーが問題なく機能しているにもかかわらず、F1 ホットキーが機能しない理由がわからないため、コード全体を以下に含めました。御時間ありがとうございます。このコードのかなりの部分は、他の人の作品の例を見て思いついたもので、ある程度しか理解できません。私はこのサイトを初めて使用し、正しく貼り付ける方法を正確に理解していないため、コードが正しくフォーマットされていることを願っています. 事前にご協力いただき、誠にありがとうございます。
Public Class Form1
Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vkey As Long) As Integer
Private Declare Sub mouse_event Lib "user32.dll" (ByVal dwflags As Long, ByVal dx As Long, ByVal cbuttons As Long, ByVal dy As Long, ByVal dwExtraInfo As Long)
Dim hotkey1 As Boolean
Dim hotkey2 As Boolean
Private Const mouseclickup = 4
Private Const mouseclickdown = 2
Dim Test As Integer
Dim Interval As Integer
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
Click.Start()
End Sub
Private Sub btnStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStop.Click
Click.Stop()
End Sub
Private Sub btnTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTest.Click
Test = Test + 1
Counter.Text = Test
End Sub
Private Sub Click_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Click.Tick
Interval = CInt(timeTextbox.Text)
Click.Interval = Interval
mouse_event(mouseclickdown, 0, 0, 0, 0)
mouse_event(mouseclickup, 0, 0, 0, 0)
hotkey1 = GetAsyncKeyState(Keys.F1)
If hotkey1 = True Then
btnStart.PerformClick()
End If
hotkey2 = GetAsyncKeyState(Keys.F2)
If hotkey2 = True Then
btnStop.PerformClick()
End If
End Sub
Private Sub timeTextbox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timeTextbox.TextChanged
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
KeyPreview = True
End Sub
クラス終了