SendMessage Tutorial

09/30/2011 19:00 Kraizy​#31
Such mal nach der "mouse_event"-API.
09/30/2011 19:50 Banana_jo#32
hmm ich hab jetz geguckt und es sind eig nur mouse events die eine bestimmte stelle senden...aber nicht die bewegungen die ich mache..

oder liege ich da flasch?

ich hab jetz erstmal die maus position eingebaut auf halt 2 labels..die mit dem timer aktiviert sind...

und ich find leider nichts mausklicks systemweit abzufangen >.<..
10/01/2011 11:53 Kraizy​#33
Quote:
undzwar wie sende ich denn mausklickst weiter?
Quote:
und ich find leider nichts mausklicks systemweit abzufangen
Willst du jetzt abfragen, welche Maustaste gedrückt wurde, oder selbst Mausklicks ausführen?

Mit mouse_events kannst du Mausklicks senden. Mit GetAsyncKeyState kannst du abfragen, ob die linke/richte/mittlere Maustaste gedrückt wurde. Wenn du dann auch noch die Position haben willst, wo die Taste gedrückt wurde, benutzt du MousePosition.X/Y.
PHP Code:
//GetAsyncKeyState
Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Integer) As Integer

//Linker Mausbutton
Private Const VK_LBUTTON As Integer = &H1

//Rechter Mausbutton
Private Const VK_RBUTTON As Integer = &H2

//Mittlerer Mausbutton
Private Const VK_MBUTTON As Integer = &H4

//Timer
Private Sub tmrCheck_Tick(...) Handles tmrCheck.Tick
   Select 
Case True
      
Case Convert.ToBoolean(GetAsyncKeyState(VK_LBUTTON))
         
lblResult.Text String.Format("Linker Mausbutton -> X:{0} Y:{1}"MousePosition.XMousePosition.Y)
      Case 
Convert.ToBoolean(GetAsyncKeyState(VK_LBUTTON))
         
lblResult.Text String.Format("Rechter Mausbutton -> X:{0} Y:{1}"MousePosition.XMousePosition.Y)
      Case 
Convert.ToBoolean(GetAsyncKeyState(VK_LBUTTON))
         
lblResult.Text String.Format("Mittlerer Mausbutton -> X:{0} Y:{1}"MousePosition.XMousePosition.Y)
      Case Else
         
lblResult.Text "Kein Mausbutton"
   
End Select
End Sub 
10/02/2011 01:35 Banana_jo#34
ja genau..dein code hat geholfen :) danke dir...so ähnlich hatte ich es doch noch paar sachen waren falsch bei mir...

geht das eig das man auch die bewegungen weiter senden kann?...
ne odeR? zb um die kamera zu drehen und sowas...

und aber ich glaub nicht das der code an einen anderen fenster sendet oder?
also ich möchte das meine mausklicks in ne inatkive gesendet wird(Game)
so wie die tasten halt..
EDIT:
achja...das ist nur zum abfragen wo die mausklicks gemacht worden sin ne?
10/02/2011 13:32 Kraizy​#35
Ich weiß zwar nicht, ob man Mausklicks an ein Fenster, welches im Hintergrund ist, senden kann, aber kannst es ja mit der SendMessage-API versuchen, Tutorial ist ja auf der ersten Seite. Müsstest es dann halt für dein Vorhaben anpassen/umschreiben. Aber in einem Spiel wird SendMessage denke ich mal sowieso nicht klappen..
10/04/2011 01:26 Banana_jo#36
jo funzt nicht im hintergrund...das es nur eine maus gibt :P

naja nicht schlimm danke trozdem :D

achja...weist du vllt wie ich 2 tasten gleichzeitig abfragen und simulieren kann?

denn das problem ist wenn ich 2 tasten drücke erscheint nur eine nummer im label...

EDIT:

wenn ich das einbau

Code:
Case GetAsyncKeyState(&H57) And GetAsyncKeyState(&H44)
                Label1.Text = "geht"
dann gehts nur wenn ich die standart taste "57" und "44" entferne sonst steht nur die eine zahl da wenn ich die entferne dann steht das da was ich haben will...aber ich muss wenn schon denn schon beide drinn haben :D

EDIT2:

hat sich erledigt hab ne andere methode gefunden funzt jetz super 1 A :P

EDIT3:

hmmm nur das problem ist ich hab meine methode mit 2 tasten getestet und da lief das ganz gut aber wenn jetz alle tasten in einem timer sind und der timer ALLE tasten durchgucken muss kommt irgendwie alles ein bisschen später an..:O...entweder ich mach was falsch oder der ist einfach überlastet^^

Code:
        Select Case True
            Case GetAsyncKeyState(&H41) 'A
                SendMessage(fensterhandle, WM_KEYDOWN, &H41, vbNullString)
            Case Else
                SendMessage(fensterhandle, WM_KEYUP, &H41, vbNullString)
        End Select

        Select Case True
            Case GetAsyncKeyState(&H42) 'B
                SendMessage(fensterhandle, WM_KEYDOWN, &H42, vbNullString)
            Case Else
                SendMessage(fensterhandle, WM_KEYUP, &H42, vbNullString)
        End Select
so hab ich es gemacht für jede taste...denn damit kann ich die länge der tasten drücke besser kontrollieren aber ich glaub wegen den ganzen tasten ist der timer sehr überlastet^^

soll ich es auf mehrere timer verteilen?^^

edit:
funzt auch nicht >.<...ohman bin am ende :P

weis auch warum ^^...weil er bei einem tastendruck ALLE kontrolliert ob es die taste ist.^^..

aber wie kann ich das filter?

das IST die frage..

edit wiedermal :P

habs gerade mit if abfrage versucht...ein oder 2 tasten funzt wieder perfekt aber bei allen tasten dann wird der wieder langsam >.<..


maaaaaaaannn..
10/04/2011 16:50 Kraizy​#37
Schau dir mal einige Sourcecodes von Keyloggern und deren Keyboard-Hooks an.
Sollte mit Google leicht zu finden sein..
10/04/2011 17:18 Banana_jo#38
Ich hab google schon ausgefragt:) weiß nicht mehr was ich rein schreiben soll ....
10/04/2011 17:45 Kraizy​#39
Dass du nichts gefunden hast, glaube ich nicht.
Google -> "vb.net keylogger source", gibts genug Einträge.
10/04/2011 18:11 Banana_jo#40
kann ich denn die keydown und up mit einbinden?
10/04/2011 18:20 Kraizy​#41
Warum schaust du dir das nicht einfach mal an?
Ich selber hab mit nem KeyBoard-Hook noch nicht so viel gearbeitet, aber aufjedenfall gibt's Keylogger, bei denen das dann z.B. so aussieht:
Code:
[SHIFT]hal[/SHIFT]lo
oder es wird gleich als "HALlo" ausgegeben. Also würde ich sagen, dass es damit machbar wäre.
10/04/2011 18:41 Banana_jo#42
sry aber ich weis garnicht wonach ich gucken soll ...

ich finde tausend keylogger wo die tasten einfach in ne textbox geschrieben werden...ja das hab ich ja auch...aber wirklich nützlichen find ich nicht...
10/04/2011 18:49 Kraizy​#43
Sry, aber so langsam hab ich auch keine Ahnung, wie ich dir sonst noch helfen kann. Es ist doch nicht so schwer nach "vb.net keylogger source" oder "vb.net keyboard hook" zu googlen..vllt hilft ja das (hab's mir nicht runtergeladen und genau angeschaut): [Only registered and activated users can see links. Click Here To Register...]
10/05/2011 00:42 Banana_jo#44
danke für den link aber denk der hat nicht gerad geholfen...

das problem ist ja ich brauch für jeden keydown ein keyup...damit der solange den keydown sendet wie ich auch auf die taste drücke...

so und bei dem beispiel sind die funktion für normales tippen drinne..aber ich denk nicht das ich da ein keyup ein binden kann..

brauche für jeden case ein case else für keyup..
02/08/2012 00:38 [ADM]RaZoR#45
hi,
ich melde mich hier auchmal zu wort, weil ich ein kleines problem habe. ich arbeite mit VB 2010, und habe für einen privaten server von rappelz ein server launcher geschrieben. der beinhaltet 3 buttons.
1. button = start Auth Server
2. button = start Game Server
3. button = Auth befehle eintragen

so , die ersten beiden buttons habe ich den code zugewiesen mit
PHP Code:
Process.Start(""
jedoch soll der 3. button 2 befehle in den auth server eintragen, und ich weiß nicht wie....
die befehle sind : start_sevice und set game.open_external 1
kann mir da wer bitte helfen? oder ein beispiel posten?
ich danke für jede hilfeiche unterstützung :)