Seite 1 von 1
Mausklicks auf Desktop simulieren
Verfasst: 19.12.2008 18:49
von Herror
Hallo,
Bin eigentlich ein totaler Anfänger in PureBasic.
Habe erst gestern angefangen ein Programm zu schreiben, dass Mausklicks simuliert.
Möchte nämlich ein Programm schreiben, dass für mich eine Internetseite durchklickt. Alle 10x10 Pixel ein Klick.
Kann ich irgendwie direkt mit dem Browser arbeiten oder wie schaffe ich es ganz normal Klicks auf dem Desktop hinzubekommen?
Bin gerade so weit:
Code: Alles auswählen
Procedure Mouseklickleft()
mouse_event_(#MOUSEEVENTF_LEFTDOWN, 0,0,0,0)
mouse_event_(#MOUSEEVENTF_LEFTUP, 0,0,0,0)
EndProcedure
InitSprite()
InitMouse()
OpenWindowedScreen(GetDesktopWindow_(), 0, 0, GetSystemMetrics_(0), GetSystemMetrics_(1), 0, 0, 0)
ExamineMouse()
MouseLocate(20, 780)
ExamineMouse()
Mouseklickleft()
End
Das klappt aber nicht ganz...
Wenn ich ein Fenster öffne, agiert der Mauszeiger nur innerhalb des Fensters, geht aber nicht auf den Windows-Start Button...
Verfasst: 19.12.2008 18:52
von Fluid Byte
Möchte nämlich ein Programm schreiben, dass für mich eine Internetseite durchklickt. Alle 10x10 Pixel ein Klick.
Darf man nach dem Sinn fragen?
Verfasst: 19.12.2008 19:02
von Dare Devil
Code: Alles auswählen
Procedure Mouseklickleft()
mouse_event_(#MOUSEEVENTF_LEFTDOWN, 0,0,0,0)
mouse_event_(#MOUSEEVENTF_LEFTUP, 0,0,0,0)
EndProcedure
SetCursorPos_(10, 590)
Mouseklickleft()
Damit gehts... Den Sinn des ganzen versteh ich aber auch nicht...
Koenntest ja auch ein WebGadget oeffnen
Verfasst: 19.12.2008 19:51
von Kaeru Gaman
@Herror
der
Grund warum es bei dir nicht funktioniert ist der,
dass die Mouse-Lib eben nur für den Screen context da ist.
sie steht auch unter "2D Spiele & Multimedia Libraries"
und in der Einleitung heißt es
... speziell zur Benutzung in Spielen. Verwenden Sie die Befehle dieser Library nicht in einer regulären Applikation ...
also, ganz klar ein Fall von

was die MouseLib betrifft.
weitergehend interessiert mich natürlich auch, wozu
> Alle 10x10 Pixel ein Klick.
gut sein soll.
Verfasst: 19.12.2008 19:59
von Herror
Danke für die schnelle Hilfe ^^
Und angemerkt:
Ich habe erst gestern mit PureBasic angefangen... und ich durchforste echt schon seit Stunden die Anleitung und diverse Internetseiten und Foren und habe mich, nach ca. 8 Stunden selber probieren, mal dazu entschieden hier mal paar leute damit zu quälen.
Wozu das gut sein soll:
Ich will Programmieren ^^
Und nebenbei möchte ich an einem Gewinnspiel teilnehmen:
http://www.giga.de/aktionen/wiese/motiv/
Ich weiß, dass die Felder immer 10x10 Pixel groß sind.
Nun, wären da WebGadget besser dafür geeignet?
Verfasst: 19.12.2008 21:05
von Dare Devil
Also ich weiss jetzt nicht wirklich was du vor hast - aber allgemein wuerde ich sagen waere ein WebGadget geeignet.
Den erstellst du ueber dein Fenster und oeffnest die Seite die du haben willst. Anschliessend kannst du dann dein Vorhaben in die Tat umsetzen.
Hier eine kleine Demonstration:
Code: Alles auswählen
Procedure Mouseklickleft()
mouse_event_(#MOUSEEVENTF_LEFTDOWN, 0,0,0,0)
mouse_event_(#MOUSEEVENTF_LEFTUP, 0,0,0,0)
EndProcedure
Procedure SimuliereKlick()
If WindowMouseY(0) < 400
If WindowMouseX(0) < 100
SetCursorPos_(DesktopMouseX() + 1, DesktopMouseY() + 1)
ElseIf WindowMouseX(0) > 172
SetCursorPos_(DesktopMouseX() - 1, DesktopMouseY() + 1)
Else
SetCursorPos_(DesktopMouseX(), DesktopMouseY() + 1)
EndIf
ProcedureReturn 1
Else
Mouseklickleft()
ProcedureReturn 0
EndIf
EndProcedure
OpenWindow(0, 0, 0, 800, 500, "Demonstration", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget)
CompilerIf #PB_Compiler_Version < 430
CreateGadgetList(WindowID(0))
CompilerEndIf
button1 = ButtonGadget(#PB_Any, 350, 10, 100, 30, "Simulation!")
webseite = WebGadget(#PB_Any, 0, 50, 800, 450, "http://www.purebasic.fr/german")
klicksimulation = 0
Repeat
EventID = WindowEvent()
If EventID = #PB_Event_CloseWindow
Break
ElseIf EventID = #PB_Event_Gadget
If EventGadget() = button1
klicksimulation = 1
EndIf
EndIf
If klicksimulation = 1
klicksimulation = SimuliereKlick()
EndIf
Delay(20)
ForEver
Wenn man auf "Simulation" klickt bewegt sich die Maus wie von Geisterhand auf "Ankuendigungen" und klickt darauf.
Viel Spass damit!
Und herzlich willkommen im Forum! Hab erst vorhin gesehen dass du neu bist.
Verfasst: 19.12.2008 21:27
von Herror
Oh, danke.
Habe schon angefangen mich mit dem WebGadget auseinanderzusetzen, hab es aber nicht hinbekommen das zum Laufen zu bringen ^^
Das bringt mich auf jeden Fall einen Schritt weiter.
Danke sehr!