 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
0oFreako0
Anmeldungsdatum: 17.12.2011 Beiträge: 114
|
Verfasst am: 22.03.2014, 10:14 Titel: Move Mouse Problem |
|
|
Hi versuche mich gerade an einer Movemouse funktion wie in Autoit.
Wie ich die Maus von X,y nach x,y bewege ist kein Problem, nur mit der Endabfrage wenn ich die geschwindigkeit erhöhe weil sie dann ja nicht immer an den endx und endy koordinaten sein wird sondern auch mal einen drüber oder 5 drüber und dann verharkelt sich die ganze Geschichte.
Das andere Problem ist wie benutz ich die Pointstruct für die Api GetcursorPos in Freebasic?
hier mein code
Code: |
Declare Function movemouse(move_x As Integer, move_y As Integer, speed As integer) As Integer
Function movemouse(move_x As Integer, move_y As Integer, speed As integer) As Integer
Dim mouse_x As Integer
Dim mouse_y As Integer
mouse_x = 200
mouse_y = 200
Do
If mouse_x > move_x Then mouse_x -= speed
If mouse_x < move_x Then mouse_x += speed
If mouse_y > move_y Then mouse_y -= speed
If mouse_y < move_y Then mouse_y += speed
SetCursorPos(mouse_x, mouse_y)
Sleep 1
Loop Until mouse_x = move_x And mouse_y = move_y
Return 1
End Function
|
|
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 22.03.2014, 11:26 Titel: |
|
|
nur auf die schnelle
Code: | #include "windows.bi"
Dim as Point MousePos
Dim as String Key
Sub MoveMouse(byval X as Integer, byval Y as Integer, byval S as Integer)
Dim as Point CurPos
GetCursorPos(@CurPos)
Dim as Double movX, movY
Dim as Integer newX, newY
movX = X-CurPos.X
movY = Y-CurPos.Y
newX = CurPos.X
newY = CurPos.Y
Do
newX += S*SGN(movX)
newY += S*SGN(movY)
SetCursorPos(newX,newY)
If SGN(movX)<0 and newX<X Then newX = X
If SGN(movX)>0 and newX>X Then newX = X
If SGN(movY)<0 and newY<Y Then newY = Y
If SGN(movY)>0 and newY>Y Then newY = Y
Loop until newX = X and newY = Y
End Sub
Dim as Integer newX, newY
Do
Input "Neue X: ";newX
Input "Neue Y: ";newY
MoveMouse(newX,newY,1)
Loop until multikey(&h01)
|
_________________
 |
|
Nach oben |
|
 |
0oFreako0
Anmeldungsdatum: 17.12.2011 Beiträge: 114
|
Verfasst am: 22.03.2014, 11:52 Titel: |
|
|
@ Eternal_pain
Danke für die schnelle Antwort.
Kurze Frage noch wenn ich dort einen Mausklick am ende integrieren will bräuchte ich einen handler vom Cursor ? |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 22.03.2014, 12:01 Titel: |
|
|
Code: | 'http://forum.qbasic.at/viewtopic.php?p=77006&sid=f91e0b21948f71d4b7a7519c6f344376
'http://msdn.microsoft.com/en-us/library/windows/desktop/ms646260%28v=vs.85%29.aspx
Sub MouseClick()
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0)
sleep 1
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0)
End Sub
|
_________________
 |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|