Frage zu nem "Kleinen" Script

  • Hallo Liebe Leute

    Ich Habe eine Frage/Problem

    ich arbeite seit ein parr tagen mit AutoIT und habe schon das was ich machen möchte teils hinbekommen, Ich Möchte das AutoIT schaut Ob es ein Fehlermeldungs Fenster Gibt dieses dan schließt und ein programm neustartet das gerade abgestürzt ist. und Dann wieder von vorne anfängt (also wieder warten bis fehlermeldung auftritt) . Mein Problem ist nur es Kommen Verschiedene Fehlermeldung und ich weiß nicht so wirklich wie ich das einbauen kann das er nach beiden sucht.

    Hier is mal der Code den ich bis jetz gebaut haben

    Code
    While 1
    If WinExists("Ultima Online -  (Keine Rückmeldung") Then
    WinActivate("Ultima Online -  (Keine Rückmeldung")
    WinWaitActive("Ultima Online -  (Keine Rückmeldung)")
    WinClose("Ultima Online -  (Keine Rückmeldung")
    WinWaitClose("Ultima Online -  (Keine Rückmeldung")
    ShellExecute("C:Programme\Razor\Razor.exe")

    UND JA es ist für ein Spiel und N E I N es ist kein bot es soll lediglich das spiel nur wieder öffnen und sich einlogen(das Einlogen Macht Razor ja eh automatisch) also kein bot using oder so was laut dem forum ja verboten ist!.

    es passiert entweder das der Client sich aufhängt und Ultima Online - (Keine Rückmeldung dort steht ooodeeer es popt ein fehlermeldungsfenster auf mit dem Title laut AutoIT WinInfo.. Microsoft Windows... nu is meine frage bekommt man es in ein script das er nach beiden möglichkeiten sucht?

    Einmal editiert, zuletzt von nightfire0110 (2. März 2011 um 06:59)

  • Versuche mal dass

    [autoit]

    While 1
    Sleep (750)
    If WinExists('Ultima Online - Keine Rückmeldung','') Then
    WinWaitActive('Ultima Online - Keine Rückmeldung','',20)
    WinClose('Ultima Online - Keine Rückmeldung','')
    WinWaitClose('Ultima Online - Keine Rückmeldung','',15)
    ShellExecute('C:Programme\Razor\Razor.exe')
    EndIf
    WEnd

    [/autoit]


    Ansonsten währe noch ne Lösung

    [autoit]

    ShellExecute('C:Programme\Razor\Razor.exe')

    [/autoit]


    Statt

    [autoit]


    WinClose('Ultima Online - Keine Rückmeldung','')
    WinWaitClose('Ultima Online - Keine Rückmeldung','',15)

    [/autoit]

    Und Sorry an die Anderen dass ich einem neuling die evt lösung auf dem Silberteller Pressentiere X(

  • Zitat

    Und Sorry an die Anderen dass ich einem neuling die evt lösung auf dem Silberteller Pressentiere


    Darüber wird sich keiner beschweren, nur wenn jemand ein Script verlangt ohne auch nur versucht zu haben es selbst zu machen verweisen wir ihn meist auf die Jobbörse ;).

  • Zitat

    Darüber wird sich keiner beschweren, nur wenn jemand ein Script verlangt ohne auch nur versucht zu haben es selbst zu machen verweisen wir ihn meist auf die Jobbörse ;).


    HöHö = Die Jobbörse? Is ja Hard X( und richtig Fies Ihrgendwie HöHö :P
    Tnijo, er hat es auf jeden Versucht :D


  • Darüber wird sich keiner beschweren, nur wenn jemand ein Script verlangt ohne auch nur versucht zu haben es selbst zu machen verweisen wir ihn meist auf die Jobbörse ;).

    Naja am versuchen bin ich schon seit 3 tagen heheh is nur sehr schwer wenn man vond er Materie nicht soo viel ahnung hatt, im Moment versuche ich noch das ich Beide Fehlermeldung in die abfrage einbauen kann

    also 1x
    If WinExists("Ultima Online - (Keine Rückmeldung")
    und 1x
    If WinExists("Microsoft Windows)

  • @nightfire0110 Das war jetzt nicht auf dich bezogen, ich wollte nur Skilkor darüber informieren, dass unser Forum ihn keineswegs veurteilen wird nur weil er einem Neuankömmling die Lösung zu seinem Problem geliefert hat. Puh, langer Satz ^^ ....

  • Verwende dafür doch einfach den "Window Info" der bei der installation von AutoIt Dabei ist....Wen du nicht wissen solltest wo der Ist,
    Start-->Alle Programme-->AutoIt
    Sollte der zumindest sein ^^

    **Edit**

    Zitat

    @nightfire0110 Das war jetzt nicht auf dich bezogen, ich wollte nur Skilkor darüber informieren, dass unser Forum ihn keineswegs veurteilen wird nur weil er einem Neuankömmling die Lösung zu seinem Problem geliefert hat. Puh, langer Satz ^^ ....


    HuHuHo ^^ (Mehr sag ich Ned >_<)

  • Na da mach es doch einfacher ^^

    [autoit]


    While 1
    Sleep(750)
    If WinExists('Microsoft Windows','') Then
    WinActivate('Microsoft Windows','')
    Send('{ENTER}')
    If WinExists('Microsoft Windows','') Then
    WinActivate('Microsoft Windows','')
    Send('{ENTER}')
    EndIf
    EndIf
    WEnd

    [/autoit]


    Somit hast du eine Doppelte If abfrage Falls das mit dem ersten "ENTER" nicht Klappen sollte

    Hoffe Das Klapt auch Selbst X(


  • Dass sollte Natürlich auch Funktionieren
    (Wobei ich noch für Ihn auf dem verständlichen Pfad bleiben wollte) :D HeHe

  • okayyyyyy bin mittelstark verwirrt aber da slese ich mir zurecht was das alles bedeutet.

    Gibts ne möglichkeit das ich beide fehlerabfragen kombiniere ? oder am besten für jede fehlermeldung nen eigenen script anlegen weil ich ja auch nen loop einführen wollte aber das sollte ja mit While 1 kein problem sein

    Code
    While 1
    	Sleep (750)
    	If WinExists('Ultima Online - Keine Rückmeldung','') Then
        	WinWaitActive('Ultima Online - Keine Rückmeldung','',20)
        	WinClose('Ultima Online - Keine Rückmeldung','')
        	WinWaitClose('Ultima Online - Keine Rückmeldung','',15)
        	ShellExecute('C:Programme\Razor\Razor.exe')
    	EndIf
    WEnd

    und

    Code
    $hWnd = WinGetHandle("Microsoft Windows")
    Do
    	If WinGetHandle("Microsoft Windows") = $hWnd Then
        	WinClose($hWnd)
    	Else
        	$hWnd = WinGetHandle("Microsoft Windows")
        	WinClose($hWnd)
    	EndIf
    	Sleep(50)
    Until Not WinExists($hWnd)
  • hmm, also Kombinieren wüsst ich jetz nicht wie..liegt vll auch daran das Mein hirn auf dem kopfkissen Liegt und ich schon bald 36std auf den Beinen bin (Deswegen auch so eine Katastrophale Gross/Klein,'sowie',Rechtschreibung HöHö

  • Also das Script für Windows Fehlermeldung müsste mitm Loop und Dem Öffnes vom Razor ja dann so aussehen wenn ich mich ned irre

  • [autoit]

    While Sleep(50)
    $hWnd = WinGetHandle("Microsoft Windows")
    If WinExists($hWnd) Then
    Do
    If WinGetHandle("Microsoft Windows") = $hWnd Then
    WinClose($hWnd)
    Else
    $hWnd = WinGetHandle("Microsoft Windows")
    WinClose($hWnd)
    EndIf
    Sleep(50)
    Until Not WinExists($hWnd)
    ShellExecute("C:Programme\Razor\Razor.exe")
    WinWait("Ultima Online")
    EndIf
    WEnd

    [/autoit]
  • hmmmm irgentwas is da Komsich

    habe das script mal anlaufen lassen und es popte dauernd das fenster auf Um Meinen PC Herunterzufahren

  • Hallo,

    da es sich um

    Zitat

    Ultima Online (UO) is a graphical massively multiplayer online role-playing game

    Spiel handelt und die Lösung schon gepostet wurde (ironischerweise hat der Author aber die Fenstertitel verwechselt) und auch mit keinen weiteren konstruktiven Beiträgen zu rechnen ist.

    vote for close

    mfg autoBert

  • Ja Es ist richtig es handelt sich um nen Spiel aber da ich Weder nen BOT noch ein CHEAT programm machen will ist es laut den forum regeln ja legal , sonst wäre mein beitrag ja auch nicht freigeschaltet worden.

    und das der Nette Herr über Dir die richtige lösung gepostet hatt kann sein nur ich komme mit seiner schreibweiße vom script im moment noch nicht klar da ich diese zeilen noch nie zu vor benutzt habe .