Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Move Mouse Problem

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
0oFreako0



Anmeldungsdatum: 17.12.2011
Beiträge: 114

BeitragVerfasst am: 22.03.2014, 10:14    Titel: Move Mouse Problem Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 22.03.2014, 11:26    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
0oFreako0



Anmeldungsdatum: 17.12.2011
Beiträge: 114

BeitragVerfasst am: 22.03.2014, 11:52    Titel: Antworten mit Zitat

@ 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
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 22.03.2014, 12:01    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz