KeyDown und MouseDown "simulieren"

Übersicht BlitzBasic DLLs und Userlibs

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

Jean

BeitragFr, Apr 20, 2007 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Mir scheint so, als würden die meisten Maus Funktionen nicht richtig funktionieren. Also das mit den absoluten Positionen läuft schon mal gar nicht und wenn ich die Maus verschieben möchte stimmt die neue Position überhaupt nicht.

Hier ein Beispiel: (B+)
Code: [AUSKLAPPEN]

Const ME_LDOWN = $2 ;Linke Maustaste drücken
Const ME_LUP = $4 ;Linke Maustaste loslassen
Const ME_MDOWN = $20 ;Mittlere Maustaste drücken
Const ME_MEUP = $40 ;Mittlere Maustaste loslassen
Const ME_MOVE = $1 ;Maus bewegen
Const ME_ABSOLUTE = $8000 ;Absolute Mauskordinaten bei Bewegung
Const ME_RDOWN = $8 ;Rechte MAustaste drücken
Const ME_RUP = $10 ;Rechte Maustaste loslassen

ChangeMouse ME_MOVE,MouseX()*-1,MouseY()*-1,0,0 ;Maus auf 0 Position legen
For x = 1 To 100
   ChangeMouse ME_MOVE,1,0,0,0 ;Maus um 1X verschieben
   Print "Sollte: " + x + " Ist: " + MouseX()
Next
WaitKey


Kann mir jemand sagen was ich an der ganzen Sache falsch mache?

THX

Smily

BeitragFr, Apr 20, 2007 15:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Wahrscheinlich nutzt das Programm irgendeine andere Einheit statt pixel.

Das verhältnis zur Angegebenen Poition zu anderer-Poition ist ungefähr 0,38
Gruß, Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

Jo0oker

BeitragDo, Nov 15, 2007 22:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, gefällt mir nur wie kann ich das ganze jetzt auch bei einem spiel anwenden?
Also, starte mein kleines Programm, welches ein Spiel startet.
Und jetzt soll mit hilfe meines Programmes das spiel gesteuert werden.

Warum geht das nicht?

lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!

draco

BeitragSa, Nov 17, 2007 0:05
Antworten mit Zitat
Benutzer-Profile anzeigen
bei der decls für die mousebefehle wird bei mir angezeigt: error in userlib "mouse_event_klick.decls" - duplicate identifer... was soll das bedeuten?

/Edit: Oh sorry, hatte dieselbe decls nochmal, wegen mausverschiebung, dachte das wär ne andere... hat sich geklärt nochmal sorry...

Der Eisvogel

BeitragDo, Jan 24, 2008 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo
bei funktioniert der Virtuelle Tastendruck nicht.
Code: [AUSKLAPPEN]
Const VK_LEER = 32
Const KEYEVENTF_KEYUP = $2

Presskey(VK_LEER,0,0,0)

Repeat
Cls

Color Rnd(0,255),Rnd(0,255),Rnd(0,255)
Rect Rnd(0,100),Rnd(0,100),Rnd(10,50),Rnd(10,50)

If KeyDown(57) Then
Color Rnd(100,255),Rnd(100,255),Rnd(100,255)
Rect 10,10,50,50
EndIf

Until KeyHit(1)
Presskey(VK_LEER,0,KEYEVENTF_KEYUP,0)
End

Also, bei diesem Code sollen Rechtecke gezeichnet werden, die bei jedem Schleifendurchlauf die Farbe, die Position und die Größe wechseln.
Soweit sogut, wenn jetzt noch die Leertaste gedrückt wird dann soll ein Rechteck gezeichnet werden, das nur die Farbe ändert.
Die Leertaste soll durch den virtuellen Tastendruck simuliert werden, aber das funktioniert bei mir leider nicht.
Warum?
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

BladeRunner

Moderator

BeitragDo, Jan 24, 2008 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil dein virtueller Tastendruck erst kommt wenn die Schleife beendet wurde.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Der Eisvogel

BeitragDo, Jan 24, 2008 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Auf der ersten Seite steht im 3. Beitrag das "0" für den Anschlag(Taste drücken) ist und "2" für loslassen.

EDIT: Am Anfang meines Codes steht:
Code: [AUSKLAPPEN]
Presskey(VK_LEER,0,0,0)

Das bedeuted meinesachtens das die Taste gedrückt wird. Nach der Schleife wird sie dann wieder losgelassen, oder nicht?
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

BladeRunner

Moderator

BeitragDo, Jan 24, 2008 20:51
Antworten mit Zitat
Benutzer-Profile anzeigen
ah, i see. Dann weiss ich es nicht.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Der Eisvogel

BeitragDo, Jan 24, 2008 20:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast du nen anderen Code mit dem es bei dir funktioniert?

P.S. Ich habe B3D.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

The_Nici

BeitragSa, Feb 23, 2008 14:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
die Funktionen sind sehr geil, danke! =)
Jedoch habe ich ein Problem: Sobald das Fenster im Hintergrund ist, funktioniert das ganze nichtmehr. Könnte man das sozusagen versteckt immer im Vordergrund laufen lassen oder sonstwas?

Der Eisvogel

BeitragSa, Feb 23, 2008 15:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Kannst du mir deinen Code mal geben, ich hab des nämlich immernoch net geschaft.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

The_Nici

BeitragSa, Feb 23, 2008 15:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Den willst du garnich erst sehen. Oo

Nunja, Die Konstanten sind schon in deinem Code, oder?

Der Eisvogel

BeitragSa, Feb 23, 2008 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mein Code: [AUSKLAPPEN]
Const VK_LEER = 32
Const KEYEVENTF_KEYUP = $2

Repeat
Cls

Presskey(VK_LEER,0,0,0)

Color Rnd(0,255),Rnd(0,255),Rnd(0,255)
Rect Rnd(0,100),Rnd(0,100),Rnd(10,50),Rnd(10,50)

If KeyDown(57) Then
Color 255,0,0
Rect 10,10,50,50
EndIf

Until KeyHit(1)
Presskey(VK_LEER,0,KEYEVENTF_KEYUP,0)
End
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.
 

judos

BeitragDi, März 11, 2008 20:58
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo zusammen,


also ich finde die funktionen auch ganz schön geill Cool
einziges problem bei mir: die absolute verschiebung der maus funktioniert auch nicht...

die relative verschiebung habe ich noch nicht überprüft, was es für eine Einheit benützt...

mfg judos

pirahni

BeitragSa, März 22, 2008 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ich kann noch kein Urteil fällen. ich habe das Beispiel übernommen und auch die dll eingebunden nur... bei mir kommt sofort nach dem start:


expecting end-of-file

hat da wer ne idee?
Leicht verständliche Informatiktutorials:
http://www.youtube.com/VascoLange
 

judos

BeitragMi, März 26, 2008 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
wahrscheinlich hast du noch en fehler im code oder so...
beim kopieren kommen oft noch unerwünschte zeichen rein...

mfg judos

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic DLLs und Userlibs

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group