Seite 1 von 3
Wie simoliere ich einen tastatur oder maus klick?
Verfasst: 30.03.2006 21:18
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

Verfasst: 30.03.2006 21:33
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)
Verfasst: 30.03.2006 22:19
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.
Verfasst: 31.03.2006 08:20
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.
Verfasst: 31.03.2006 12:04
von AND51
Dazu habe ich einmal eine Prozedur geschrieben. Schau doch mal hier:
http://www.purebasic.fr/german/viewtopic.php?t=7239
mhm
Verfasst: 31.03.2006 15:42
von Andre123
Danke Macros und AND51
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 !
Verfasst: 31.03.2006 15:55
von Macros
Im Codearchiv sind vorgefertigte Lösungen zu vielen Problemen zu finden.
Du findest es auf
http://www.purearea.net/pb/german/index
mhm
Verfasst: 31.03.2006 19:27
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

Verfasst: 31.03.2006 20:04
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
Danke
Verfasst: 31.03.2006 21:29
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?