Wie simoliere ich einen tastatur oder maus klick?

Anfängerfragen zum Programmieren mit PureBasic.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Macros hat geschrieben:@ Alteingesessenen Kaeru Gaman:
Erst lesen, dann Posten ;-)
ich bezog mich auf:
Andre123 hat geschrieben: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?
so wie ich das sehe, hat er hier die desktop-maus und die screen-maus durcheinandergeworfen.
ich sagte AFAIK sind diese -> ExamineMouse() ; MouseButton(1)
maus-geschichten für den screen.

seh ich da was falsch?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Nein, dann hast du recht.
Andre123
Beiträge: 10
Registriert: 30.03.2006 20:59

oha

Beitrag von Andre123 »

oha also das get jetzt (Dank Macros) aber nur das mit der tastatur noch nich :?
Andre123
Beiträge: 10
Registriert: 30.03.2006 20:59

pls

Beitrag von Andre123 »

PLS HELP :cry:
Benutzeravatar
benpicco
Beiträge: 391
Registriert: 01.10.2004 15:32
Wohnort: im Code
Kontaktdaten:

Beitrag von benpicco »

Hiermitt müste es gehen:

Code: Alles auswählen

Procedure TypeInWindow(hWnd,string$)
  While(x<Len(string$))
    SendMessage_(hWnd, #WM_CHAR, PeekB(@string$+x), 0);Direckt im Speicher rumzuhantieren geht einfacher als das benötigte Zeichen mit mid() rauszusuchen ;)
    Delay(10)
    x+1
  Wend
EndProcedure

RunProgram("cmd")
hWnd = FindWindow_(0, "C:\WINDOWS\system32\cmd.exe")
TypeInWindow(hWnd,"dir")
; Einmal Return drücken 
PostMessage_(hWnd, #WM_KEYDOWN, #VK_RETURN, 0)

TypeInWindow(hWnd,"echo Ich hoffe das hilft dir")
PostMessage_(hWnd, #WM_KEYDOWN, #VK_RETURN, 0)
Du musst dafür natürlich das Handle des Fensterrs kennen, das die Eingaben empfangen soll, normalerweise ist das das, das den Fokus hat (wie du rausfindest welches das ist, hab ich hier glaube ich vor kurzem gelsen), als Beispiel habe ich hier einfach den titel der console genommen (mit FindWindow das handle zum titel gesucht)
Johann Wolfgang von Geothe hat geschrieben:Wie dieses oder jenes Wort geschrieben wird, darauf kommt es doch eigentlich nicht an, sondern darauf, daß die Leser verstehen, was man damit sagen wollte.
Antworten