warten auf eine eingabe

  • Hallo an alle :)

    stehe grade vor einem rätsel...

    also ich wollte das speichern und hochladen von einer datei automatisieren...

    also bis zum speichernamen bin ich gekommen aber ab da ist ende...

    das script soll auf die eingabe von mir warten (der speichername) und danach weitermachen...
    wie realisiere ich das?

    sleep ist ja feststehend und nicht variabel sollte ich mal zu lagnsam sein machts einfach weiter oder sollte ich zu schnell sein muss ich warten das will ich ja nciht....

    habt ihr lösungsvorschläge?

    MFG

    Kleiner AutoIt Lehrling :)

  • jetzt hab ich mehr zeit also

    [autoit]


    $haha = inputbox("rama","lama")
    $open = fileopen(@appdatadir&"\tempapp.txt",1)
    filewrite($open,$haha)
    fileclose($open)

    [/autoit]


    und zum auslesen im anderen script wäre sinnvoll

    [autoit]


    $a = fileread(@appdatadir&"\tempapp.txt")
    msgbox(0,"la",$a)

    [/autoit]
  • Also mein script sieht zur zeit so aus

    [autoit]

    winwait ( "Adobe Flash CS4" )
    WinActivate ( "Adobe Flash CS4" )
    send ("{ALT}")
    send ("D")
    send ("x")
    send ("x")
    send ("captcha")
    sleep ( 5000 )

    [/autoit]

    und hinter das captcha kommt eine zahl die ich raussuchen muss... und dann auf speichern... wie geht das also?

    MFG

    Kleiner AutoIt Lehrling :)

  • Okay problem mit winwait außer seite geschafft :)

    jetzt das nächste problem...

    am ende will ich eine Bat datei ausführen die die datei wieder löscht (diese ist schon geschrieben und heißt 1.bat)

    wie kann ich die "starten"?
    mit run funktioniert es irgendwie nicht...
    (sie liegt nicht im gleichen ordner wie das script)

    auch wieder geschafft :D
    warn denkfehler -.-

    nur wie starte ich die BAT datei ohne das sie mich nerft? dh. ohne das sie sichtbar wird?

    MFG

    Kleiner AutoIt Lehrling :)

    Einmal editiert, zuletzt von blackdeath911 (24. April 2009 um 18:48)

  • Wie wäre es, wenn Du uns hilfst und das Script, soweit Du es bereits erstellt hast, postest?
    Dann kann man viel besser alles verstehen und helfen.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • [autoit]

    winwait ( "Adobe Flash CS4" )
    WinActivate ( "Adobe Flash CS4" )
    send ("{ALT}")
    send ("D")
    send ("x")
    send ("x")
    sleep (10)
    send ("captcha")
    Winwait ( "SWF-Film" )
    sleep ( 100 )
    WinWait ( "Mozilla Firefox" )
    WinActivate ( "Mozilla Firefox" )
    MouseClick ( "" ,310,235,1 )
    sleep ( 2 )
    winwait ( "Datei" )
    sleep ( 2 )
    MouseClick ( "" ,580,265,1 )
    sleep ( 2 )
    MouseClick ( "" ,800,570,1 )
    sleep ( 2 )
    MouseClick ( "" ,130,260,1 )
    WinActivate ( "Adobe Flash CS4" )
    sleep ( 10000 )
    run ("C:\Users\Adminstrator\Desktop\000000captchas\1.bat")
    Exit

    [/autoit]

    das ist das script es funktioniert so wie ich will bis auf den letzten part...

    ich möchte das die BAT-Datei nicht erscheint sondern einfach nur ihren dienst im hintergrund macht... weil ansonsten wenn ich mitten im schreiben bin dann unterbricht der mich und muss wieder draufklicken und weiterschreiben...

    ist das möglich?

    MFG: Blacky

    Kleiner AutoIt Lehrling :)

  • Du möchtest das Installationsscript löschen? Habe ichd as richtig verstanden?

    Das geht so direkt in dem Script, denn es löscht sich selber:

    Spoiler anzeigen
    [autoit]


    HotKeySet("{ESC}", "_SelfDelete") ;wenn Hotkey gedrueckt wird - Selbstzerstoerung

    While 1
    Sleep(5)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _SelfDelete($iDelay = 0)
    Local $sCmdFile
    Local $iDelay
    FileDelete(@TempDir & "\scratch.bat")
    $sCmdFile = 'ping -n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _
    & ':loop' & @CRLF _
    & 'del "' & @ScriptFullPath & '"' & @CRLF _
    & 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _
    & 'del ' & @TempDir & '\scratch.bat'
    FileWrite(@TempDir & "\scratch.bat", $sCmdFile)
    Run(@TempDir & "\scratch.bat", @TempDir, @SW_HIDE)
    Exit
    EndFunc

    [/autoit]

    Und so in Deinem Script eingearbeitet:

    Spoiler anzeigen
    [autoit]

    winwait ( "Adobe Flash CS4" )
    WinActivate ( "Adobe Flash CS4" )
    send ("{ALT}")
    send ("D")
    send ("x")
    send ("x")
    sleep (10)
    send ("captcha")
    Winwait ( "SWF-Film" )
    sleep ( 100 )
    WinWait ( "Mozilla Firefox" )
    WinActivate ( "Mozilla Firefox" )
    MouseClick ( "" ,310,235,1 )
    sleep ( 2 )
    winwait ( "Datei" )
    sleep ( 2 )
    MouseClick ( "" ,580,265,1 )
    sleep ( 2 )
    MouseClick ( "" ,800,570,1 )
    sleep ( 2 )
    MouseClick ( "" ,130,260,1 )
    WinActivate ( "Adobe Flash CS4" )
    sleep ( 10000 )
    _SelfDelete
    Exit

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _SelfDelete($iDelay = 0)
    Local $sCmdFile
    Local $iDelay
    FileDelete(@TempDir & "\scratch.bat")
    $sCmdFile = 'ping -n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _
    & ':loop' & @CRLF _
    & 'del "' & @ScriptFullPath & '"' & @CRLF _
    & 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _
    & 'del ' & @TempDir & '\scratch.bat'
    FileWrite(@TempDir & "\scratch.bat", $sCmdFile)
    Run(@TempDir & "\scratch.bat", @TempDir, @SW_HIDE)
    Exit
    EndFunc

    [/autoit]

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Nein das ist nicht mein ziel...

    ich möchte das die bat datei ausgeführt wird in der steht folgendes:

    [autoit]

    @echo off
    CD "C:\Users\Adminstrator\Desktop\000000captchas"
    del *.swf
    exit

    [/autoit]

    aber, sodass wie gesagt sie nicht "ontop" kommt sondern ich einfach normal weiterschreiben kann ohne unterbrechung....

    MFG: Blacky911

    Kleiner AutoIt Lehrling :)

  • Geht das nicht mit AutoIt?

    [autoit]

    FileDelete("C:\Users\Adminstrator\Desktop\000000captchas\*.swf")

    [/autoit]


    Und versteckt ausführen:

    [autoit]

    Run(***BAT***, **WORKINGDIR***, @SW_HIDE)

    [/autoit]
  • Vielen dank :) habt mir sehr geholfen :)

    jetzt wäre nurnoch geil wenn man das script per hotkey ausführen könnte aber naja...

    das geht wohl nur mit der Logitech G15...

    oder?

    MFG

    Kleiner AutoIt Lehrling :)

  • Nur so am Rande, sollte die Zeile 2 vom bat-Datei nicht so sein ?

    [autoit]


    CD /d "C:\Users\Adminstrator\Desktop\000000captchas"

    [/autoit]

    Ohne /d funktionierts es nicht beim Wechsel auf einem anderen Laufwerk... Probiers mal aus im CMD-Fenster...

    Programmieren ist ein bisschen Wissenschaft und viel Spass! :)

  • Nein die Bat datei funzt so wie sie ist...
    kenn mich mit bat ziemlich gut aus :P (zumindest das was ich brauch)

    nur jetzt war die frage... Hotkeys setzen fürs starten von einem AutoIT script?

    gehts oder nur mit der G15/G11 von logitech mit den Macro tasten?

    MFG: Blacky911

    Kleiner AutoIt Lehrling :)

  • Kannst das aber auch mit einer externen Software realisieren, falls Du noch mehr Anwendungen mit HotKey starten willst:
    Link

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Also mit der verknüpfung das geht nicht und das Programm scheint nicht 64 Bit kompatibel zu sein doer schwierigkeiten mit Vista zu machen ...


    hat noch einer so ein Programm was auf Vista 64 bit funktioniert? wäre echt gut und hilfreich :)

    MFG: Blacky

    Kleiner AutoIt Lehrling :)

  • Durch die funktion blick ich nicht ganz durch bin ja neu in dieser Sprache...

    wenn ich ein Hotkey setze wie müsste dann das Script aussehen? ich möchte die komplette funktion als Hotkey...

    MFG: Blacky

    Kleiner AutoIt Lehrling :)

  • Hab hier mal nen kleinen Ausschnitt von nem Programm dass ich geschrieben hatte für unsere CounterStrike Matches im Unterricht:

    Spoiler anzeigen
    [autoit]

    ;Tastenkürzel
    HotKeySet("!.", "_Close")
    HotKeySet("^m", "_Hide")
    HotKeySet("^n", "_Activate")

    [/autoit] [autoit][/autoit] [autoit]

    ;Schleife für das Beenden von CS
    While ProcessExists("hl.exe")
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Close()
    ProcessClose("hl.exe")
    If $Drive = "INVALID" then
    run("explorer.exe " & @MyDocumentsDir)
    Exit
    EndIf
    run("explorer.exe Z:")
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;Funktion für das Verstecken
    Func _Hide()
    $Window = WinGetState("Neuer Ordner (1337)")
    If $Window = 5 then
    WinSetState("Neuer Ordner (1337)", "", @SW_SHOW)
    WinActivate("Neuer Ordner (1337)")
    Elseif $Window = 7 then
    WinSetState("Neuer Ordner (1337)", "", @SW_HIDE)
    MouseClick("left")
    ElseIf $Window = 15 then
    WinSetState("Neuer Ordner (1337)", "", @SW_HIDE)
    MouseClick("left")
    ElseIf $Window = 13 Then
    WinSetState("Neuer Ordner (1337)", "", @SW_SHOW)
    ElseIf $Window = 47 Then
    WinSetState("Neuer Ordner (1337)", "", @SW_HIDE)
    MouseClick("left")
    ElseIf $Window = 23 Then
    WinSetState("Neuer Ordner (1337)", "", @SW_HIDE)
    MouseClick("left")
    ElseIf $Window = 21 Then
    WinSetState("Neuer Ordner (1337)", "", @SW_SHOW)
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;Funktion für's aktivieren von CS
    Func _Activate()
    WinActivate("Neuer Ordner (1337)")
    EndFunc

    [/autoit]

    Mit HotkeySet setzt du eine Tastenkombination und bindest diese dann an eine Funktion. In meinem Beispiel, ist ein Tastenkürzel da um das Fenster zu verstecken (Ctrl + M), eine um das Spiel zu schliessen und das Home Laufwerk zu öffnen (Alt + .) und eine um das Fenster zu aktivieren (Ctrl + N).

    Spoiler anzeigen
    [autoit]

    HotkeySet("!.", "_Funktion") ;Bei Drücken von Alt + . wird die Funktion mit dem Namen "Funktion" aufgerufen.

    [/autoit] [autoit][/autoit] [autoit]

    Func _Funktion()
    ;Inhalt der Funktion
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von ahatius (25. April 2009 um 20:53)