[S] Kleines "Tastenspamtool"

brinkz'

Honorable
31 Jan 2011
1,303
8
#1
Hey,

Vorab, muss nicht in .net sein, ist mir eigentlich relativ egal wodrin, hauptsache es funktioniert.
Also es sollte, wenn man Maus 1 oder 2 drückt, die Taste solange spammen, bis man los lässt.
Ist dafür da, dass man zB in Brickforce beim Karten bauen nicht 5000x mal maus eins hintereinander drücken muss, sondern einfach gedrückt lassen kann.

mfg,
brinkz.
 

Arctosa

Advanced Member
16 Aug 2011
1,697
1,022
#2
Compilen kannste das bestimmt selbst:
Code:
Public Class Form1

    Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Integer) As Long
    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)
    Private Const VK_M1BUTTON = &H1
    Private Const VK_M5BUTTON = &H6
    Public Const MOUSEEVENTF_LEFTDOWN = &H2
    Public Const MOUSEEVENTF_LEFTUP = &H4

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.TopMost = True
        Timer1.Interval = 100
        Timer1.Enabled = True
    End Sub

    Private Sub Timer1_Timer(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim dings As Long
        dings = GetAsyncKeyState(VK_M5BUTTON)
        If CBool(dings) Then
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
        End If
    End Sub
End Class
Einfach noch nen Timer in die VB.NET Form packen fertig.
PS: Momentan spamt er wenn man MOUSE5 drückt MOUSE1.
Kannst es aber einfach ändern in "dings = GetAsyncKeyState(VK_M1BUTTON)"
Habs jetzt in keinen Game oder so getestet sollte aber gehen.
 

brinkz'

Honorable
31 Jan 2011
1,303
8
#3
Compilen kannste das bestimmt selbst:
Code:
Public Class Form1

    Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Integer) As Long
    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)
    Private Const VK_M1BUTTON = &H1
    Private Const VK_M5BUTTON = &H6
    Public Const MOUSEEVENTF_LEFTDOWN = &H2
    Public Const MOUSEEVENTF_LEFTUP = &H4

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.TopMost = True
        Timer1.Interval = 100
        Timer1.Enabled = True
    End Sub

    Private Sub Timer1_Timer(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim dings As Long
        dings = GetAsyncKeyState(VK_M5BUTTON)
        If CBool(dings) Then
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
        End If
    End Sub
End Class
Einfach noch nen Timer in die VB.NET Form packen fertig.
PS: Momentan spamt er wenn man MOUSE5 drückt MOUSE1.
Kannst es aber einfach ändern in "dings = GetAsyncKeyState(VK_M1BUTTON)"
Habs jetzt in keinen Game oder so getestet sollte aber gehen.
Danke schonmal, funktioniert aufm Desktop soweit, aber in Brickforce will es nicht :/
 

Arctosa

Advanced Member
16 Aug 2011
1,697
1,022
#4
Dachte ich mir. Der "GetAsyncKeyState" Sh*t funktioniert in vielen Games nicht... Zumindest kommt es mir so vor.
Vllt kann dir ja jemand anderes helfen.