Programm mit Zufallsgenerator

  • Hi
    Also ich hab folgendes Problem, wozu ich mit der Suche net wirklich was gefunden hab. Falls doch was dazu steht, schomal sry ;)

    Also ich schreib grad an nem Programm, welches auf einen Link auf einer bestimmten Website klickt (Code war glaub ich mal aus nem andern Thread). Danach wird das Fenster aktualisiert. Jetzt möcht ich aber, dass er das gleiche Schema wiederholt. Allerdings soll das Programm jetzt durch Zufallszeiten auf den Link klicken und danach die Seite immer aktualisieren.

    Jetzt meine Frage: Wie schreib ich solch einen Zufallsgenerator. Bin leider noch absoluter Neuling, aber es wird^^

    Hier mal der Code

    Spoiler anzeigen

    2 Mal editiert, zuletzt von Vaniax (6. Januar 2007 um 18:56)

  • Hi,

    ich weiß nicht genau was du machen willst aber Random() kannste dir mal inner Hilfe angucken.

    Mfg

  • joa, schaut ganz gut aus. Stehn die Werte dort für Sekunden? Und wie kann ich das machen, dass das Programm nach Ausgabe des Wertes wieder klickt? (oder anders: mit welcher Schleife mach ich das)

    (bin leider noch totaler Anfänger)

  • am besten mit einer simplen endlos schleife....

    [autoit]

    While 1
    ;dein programmcode
    WEnd

    [/autoit]


    Es sei denn du will st dass die schleife irgendwann mal aufhört mom ich such mal was raus...
    //edit
    HotKeySet oder sowas wär da sicherlich ne gute lösung...so hab was^^
    so könntest du das machen...

    [autoit]

    while 1
    ;do sthg
    If $keypressed Then
    ExitLoop
    EndIF
    WEnd

    [/autoit]


    oder mit ner vorprüfenden schleife....

    [autoit]

    While Not$keypressed ;do stgh
    WEnd

    [/autoit]


    nachprüfend geht aber auch...

    [autoit]

    Do
    ;do stgh
    Until $keypressed

    [/autoit]


    $keypressed ist immer der status des keys...am besten wäre jedoch hotkeyset(denk ich mal^^)

  • Ich denke while passt schon und ich bau dann noch ne Tastenkombi ein, mit der ich das dann beende. Wäre glaub ich am einfachsten

  • Fast. Erstmal möcht ich, dass er in unterschiedlichen Zeitabständen auf aktualisieren klickt. Später möcht ich dann noch, dass er in unterschiedlichen Zeitabständen auch auf die Links klickt. Also 2 Zufallsgeneratoren.


    So, jetzt hab ich ne Frage, wegen dem ie.au3.
    Was ist das? Das ist doch ne Funktionssammlung um den IE anzusteuern oder?
    Und was meinst du damit, dass ich das fürs Refresehen nutzen kann?
    Mach ich das nich schon mit Browser Refresh?

  • Eine Frage dann noch^^

    Die WErte, die man in den Befehl Random() einsetzt, die stehen halt für Nummern. (laut Hilfe)
    Aber ich bräuchte ja was , was mir per Zufall sekunden ausgibt.
    Geht das mit dem BEfehl auch?

    • Offizieller Beitrag

    Hi,

    du bist lustig. Random gibt dir eine Zufallszahl züruck. Den Wertebereich kannst du dabei steuern mit den Parametern. (siehe Hilfe)

    Random ( [Min [, Max [, Flag]]] )

    Was du damit machst liegt an dir. Du kannst die Zahl z.B. als Sleepzeit benutzen. (Sleep arbeitet mit Millisekunden!)

    So long,

    Mega

    [autoit]


    While 1
    $zeit = Random(1000, 5000, 1)
    Sleep($zeit)
    MsgBox(0, "INFO ", "Zeichen : " & Chr(Random(49, 122)) & @CRLF & "Zeit : " & $zeit & " Ms")
    WEnd

    [/autoit]
  • Zitat

    Original von VaniaxSo, jetzt hab ich ne Frage, wegen dem ie.au3.
    Was ist das? Das ist doch ne Funktionssammlung um den IE anzusteuern oder?
    Und was meinst du damit, dass ich das fürs Refresehen nutzen kann?
    Mach ich das nich schon mit Browser Refresh?


    mhh also ich versuchs mal ganz einfach zu erklären...die IE.au3 ist wie du schon richtig vermutest eine funktionssammlung um den internet explorer anzusteuern(bzw zu kontrollieren)..zu finden ist diese ie.au3 in dem verzeichnis wo du Autoit installiert hast und dann im Include....die meisten funktionen die die IE.au3 bietet sind in der englischen hilfe ganz gut erklärt...sonst gibts ja hier das board^^ um den IE zu automatisieren benötigst du größtenteils jegendlich den quellcode der zu automatisierenden website(am besten ist immer ne url dann kann mans besser testen)

    du brauchst nicht extra nen zufallsgenerator basteln der zwischen den links entscheidet..ich hab des auch mal gemacht einfach ne funktion gebastelt die den IE navigiert und nen entsprechenden parameter der angibt wohin er soll...

    [autoit]

    #include<ie.au3>
    $oIE = _IECreate("someurl.de")
    _IENavigate($oIE,"someurl.com")
    _IEAction($oIE,"refresh")

    [/autoit]


    PS:mit IE.au3 kannst du auch Input Button so gut wie alles ansteuern...bei fragen poste einfach :)

  • achso, kannst du mir dann noch sagen, wie ich festlege, dass die Zahl als Sleepzeit angenommen wird?

  • Geiles Forum, soviel Hilfe :)

    Ok danke an alle für die Antworten, ich werd mich mal dranmachen.
    Wenn noch Fragen gibt, post ich einfach ;)


    EDIT: So das hab ich jetzt hinbekommen. Jetzt möcht ich gern noch, dass er (per Zufall) entweder Refresht oder auf einen Link klickt.

    2 Fragen:
    Erstens, wie realisier ich das mit einem Zufallsgenerator (brauch man If Schleife dazu?)

    Zweites, kann man es machen, dass die Refreshklicks und die Linksklicks in einem bestimmten Verhältnis zueinander stehn? (also 1 zu 20 oder so)?

    Einmal editiert, zuletzt von Vaniax (6. Januar 2007 um 20:38)

  • ganz einfach...

    [autoit]

    #include<ie.au3>
    $oIE = _IECreate("someurl.com")
    while 1
    $rand = Random(0,20)
    If $rand > 3 Then
    _IENavigate($oIE,"someurl.de")
    Else
    _IEAction($oIE,"refresh")
    EndIf
    WEnd

    [/autoit]


    mal im kopf zusammen gebastelt....immer wenn $rand größer 3 ist navigiert sich der ie ansonsten aktualisiert er die seite....kann man eben um basteln so wie du es brauchst...

    //edit
    ein guter zufallsgenerator generiert die zahlen per zufall..du kannst es ja ganz einfach ausprobieren...siehe spoiler...

    Spoiler anzeigen
    [autoit]

    #include<math.au3>
    HotKeySet("+!d","_Exit");Shift-Alt-d
    while 1
    $rand = Random(0,20)
    MsgBox(0,"Randomzahl","Die Zahl ist: "&$rand&@CRLF&"gerundet wäre das "&_Floor($rand))
    Sleep(10)
    WEnd
    Func _Exit()
    Exit
    EndFunc

    [/autoit]
  • Danke für die schnelle Antwort. Das basiert ja jetzt auf dem Zufallsprinzip.
    Kann man mit Autoit auch sowas programmieren, dass das ein festes Verhältnis ist, und nicht auf Zufall basiert.

    Z.B also das er alle 19 refreshes dann auf einen link klickt
    (glaube das is jetzt so richtig).
    Oder dass das Programm "merkt", dass das Verhältnis nicht mehr stimmt und das dann ausgleicht.
    Hört sich jetzt nen bissl wil an^^, aber vll geht ja sowas.

  • ebenfalls möglich....einfach noch zwei zählvariablen hinzubasteln...

    Spoiler anzeigen
    [autoit]

    #include<ie.au3>
    #include<math.au3>
    $oIE = _IECreate("someurl.com")
    $navigate = 0
    $refresh = 0
    $verhaeltnis = 0
    while 1
    $rand = Random(0,20)
    $max = _Max($navigate,$refresh)
    If($max>($navigate+5)) Then
    ;refresh ist größer => Verhältnis stimmt nicht mehr
    $verhaeltnis = 1
    Elseif($navigate=$refresh) Then
    ;Verhältniss stimmt wieder
    $verhaeltnis = 0
    EndIf
    If $rand > 3 Or $verhaeltnis = 1 Then
    _IENavigate($oIE,"someurl.de")
    $navigate = $navigate+1
    Else
    _IEAction($oIE,"refresh")
    $refresh = $refresh+1
    EndIf
    WEnd

    [/autoit]


    irgendwie so...nicht getestet aber das prinzip sollte damit eigentlich nur gezeigt werden ;)

    /edit spoieler hingebastelt..und wie meger geschrieben hat gehts auch

  • Danke erstmal an euch. Kann mir jmd dann vll noch das mit dem Counter erklären (hab in Autoit noch nie von nem Counter gehört), dann kann ich mal schaun, was mir mehr zusagt.

    Leider find man sowas nicht in Tutorials. (oder nur ich net?^^)

    Einmal editiert, zuletzt von Vaniax (6. Januar 2007 um 21:50)