Wie simoliere ich einen tastatur oder maus klick?

Anfängerfragen zum Programmieren mit PureBasic.
Andre123
Beiträge: 10
Registriert: 30.03.2006 20:59

Wie simoliere ich einen tastatur oder maus klick?

Beitrag von Andre123 »

Also ich möchte mit meinem Programm gerne simulieren .dass z.b
die taste "U" gedrückt wurde oder die linke Maustaste.
Also in der hilfedatei hab ich nix gefunden nur befehle um abzufragen
ob sie gedrükt wurden.

also ich möchte z.b. das ich über das programm nen rechtsklick machen oder die taste "u" drücken kann ohne es wirklich zu machen

pls help me :(
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

such mal im Codearchiv nach sendkeys,
das ist ein sehr gutes Beispiel.

Das mit der Maus geht so:

Code: Alles auswählen

;Mögliche Konstanten für das Ereignis 
#MOUSEEVENTF_MOVE = $1 
#MOUSEEVENTF_ABSOLUTE = $8000 
#MOUSEEVENTF_LEFTDOWN = $2 
#MOUSEEVENTF_LEFTUP = $4 
#MOUSEEVENTF_MIDDLEDOWN = $20 
#MOUSEEVENTF_MIDDLEUP = $40 
#MOUSEEVENTF_RIGHTDOWN = $8 
#MOUSEEVENTF_RIGHTUP = $10 


Procedure MouseEvent(Ereignis.l) 
  Mem.l=GlobalAlloc_(0,8) 
  GetCursorPos_(Mem) 
  mouse_event_(Ereignis|#MOUSEEVENTF_ABSOLUTE,PeekL(Mem)*($FFFF/GetSystemMetrics_(0)),PeekL(Mem+4)*($FFFF/GetSystemMetrics_(1)),0,GetMessageExtraInfo_()) 
  GlobalFree_(Mem) 
EndProcedure 

;Simuliert einen Klick mit der Rechten Maustaste an der aktuellen Cursorposition 
MouseEvent(#MOUSEEVENTF_RIGHTDOWN) 
MouseEvent(#MOUSEEVENTF_RIGHTUP) 
(auch Codearchiv)
Benutzeravatar
jear
Beiträge: 288
Registriert: 17.10.2004 01:59
Wohnort: Ammerland

Beitrag von jear »

Was ist "simolieren"? Eine Mischung aus "simulieren" und "demolieren". Ein durchaus interessanter Gedanke und er berührt mich leicht positiver als die beiden originalen Deutungen. Die mag ich nämlich beide nicht.
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

jear hat geschrieben:Was ist "simolieren"? Eine Mischung aus "simulieren" und "demolieren". Ein durchaus interessanter Gedanke und er berührt mich leicht positiver als die beiden originalen Deutungen. Die mag ich nämlich beide nicht.
Das muss nicht was schlechtes bedeuten, ich tippe eher darauf, das
Andre123 ein anderes Programm per Macro bedienen will.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Dazu habe ich einmal eine Prozedur geschrieben. Schau doch mal hier:
http://www.purebasic.fr/german/viewtopic.php?t=7239
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Andre123
Beiträge: 10
Registriert: 30.03.2006 20:59

mhm

Beitrag von Andre123 »

Danke Macros und AND51 :D

Also das mit der Maus werd ich jetzt ausprobieren.
nur mit Tastatur weis ich nich so ganz weiter!
was meinst du mit "Codearchiv" Macros? in der hilffe oder wo?

ps: ja ich wil ein Programm schreiben mit den man ein anderes bedinen kann !
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Im Codearchiv sind vorgefertigte Lösungen zu vielen Problemen zu finden.
Du findest es auf http://www.purearea.net/pb/german/index
Andre123
Beiträge: 10
Registriert: 30.03.2006 20:59

mhm

Beitrag von Andre123 »

Danke Macros
also ich hab da mal geguckt und auch nur beispiele gefunden wie man tastenabfragen macht!

get das überhaupt nen tastendruck zu simulieren?

mhm :|
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Macros hat geschrieben:such mal im Codearchiv nach sendkeys,
das ist ein sehr gutes Beispiel.
Machst du das findest du http://www.purearea.net/pb/CodeArchiv/I ... endKeys.pb
Andre123
Beiträge: 10
Registriert: 30.03.2006 20:59

Danke

Beitrag von Andre123 »

Thx für deine Hilfe

das teste ich nu auch aus und sag dan bescheid!

nur jetzt hab ich ein neues problem ich hab hier ne Procedure
geschrieben die einfach mitten drin stehen bleibt ich versteh nich wieso!

also ich mach am anfang des Programs das:

If InitMouse() = 0 Or InitKeyboard() = 0
MessageRequester("Error", "Can't open DirectX 7", 0)
End
EndIf

das scheint ja auch zu gehen das Requester wirt nich angezeigt!
und dann meine procedure:


Procedure sete()
anzahl$ = GetGadgetText(#input2)

For i=0 To E.l = Val(anzahl$)

Repeat
ExamineMouse()<-------------------Hier bleibt es stehen!
Until MouseButton(1)
Aposx.l = DesktopMouseX()
Aposy.l = DesktopMouseY()
Channel$ = Channel$+" "+Str(Aposx.l)+" "+Str(Aposy.l)
SetGadgetText(#sete,Str(i))
Next
EndProcedure


weis vieleicht einer warum das nich get?
Antworten