geplante tasks und autoit

  • Hallo,

    ich habe ein autoit programm erstellt, das mir ein Programm öffnet und an dieses mehrere Tastenkombinationen sendet und anschließend wieder schließt.
    Es soll jede Nacht über einen geplanten Task laufen. Der geplante Task startet das Programm aber ich erhalte mein Ergebnis nicht. Wenn ich am nächsten morgen in den Taskmanager schaue sehe ich, dass mein AutoIt Programm noch läuft.
    Wenn ich den geplanten Task starte während ich angemeldet bin klappt alles wunderbar.
    Kann es sein, dass AutoIt das mit den Tastenkombinationen nur macht, wenn man auch angemeldet ist? Hat jemand eine Idee, wie ich das lösen könnte?

    Grüße,

    Juli

  • Sicher?
    Also bei mir laufen auch Scripte als Geplanter Task und da ist keiner angemeldet. Dem Task kann man doch nen User mitgeben. Ich gebe Ihm einen lokalen Adminaccount an.

    MfG
    Der_Doc

  • also ich habe auch einen administrator als user angegeben aber das klappt nicht.

    jetzt muss ich wohl irgendeine möglichkeit finden, das mein programm oder ne batch datei sich vorher als administrator anmeldet. weiß da jemand was?

  • Wichtig ist auch, wenn das Script nicht unter dem Account des gerade angemeldeten Users läuft und etwas per Messagebox ausgibt, dann sieht man die Messagebox nicht, das Script bleibt aber an der Stelle stehen. Also bei Scripten die als geplanter Task laufen sollen, am besten auf alle Ausgaben verzichten, damit das Script IMMER durchläuft. Wenn nötig, dann lieber in eine Logdatei schreiben.

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Guten Morgen,
    ich erwecke mal die ruhenden Topics :rolleyes:

    Dem nach was hier geschrieben wird, befürchte ich, dass ich die Lösung des Problems schon erahne: funktioniert nicht :S

    Kurze Beschreibung:
    Ich habe ein Skript, dass jeden morgen um 5 Uhr ein Programm startet, welches einen Report fahren soll. Dieser Report soll als PDF unter einem bestimmten Pfad ablegt werden. Alles kein Problem, wenn die Workstation nicht gesperrt ist...

    Über das mitgelieferte Tool "geplante Task" von Windows lasse ich die umkonventierte .exe-Datei starten.
    Das Skript geht wie folgt vor:
    1)

    [autoit]

    FileDelete("[Pfad]\Daten\Datenaustausch\Reportnamer_*.pdf")

    [/autoit]


    2)

    [autoit]

    Run ("cmd")

    [/autoit]


    3)

    [autoit]

    Send("C:\skript\datum.au3")

    [/autoit]

    Läuft alles, bis auf das senden des Pfades... Wähle ich mich morgens über die Remotekonsole auf den Rechner, sehe ich zwar, dass er das CMD-Fenster öffnet, er aber nichts schreibt um die anderen Prorgamme aufzurufen =/

    Es funktioniert, wenn ich meinen Rechner über Nacht anlasse mit der Remoteverbindung zu dem anderen, virtuellen Rechner und ich eben auf diesem eingeloggt bin.

    Jemand 'nen Rat, wie ich das vermeiden kann?

  • Alsooo
    ich konnte in Erfahrung bringen, dass AutoIt nicht funktioniert, wenn man dies auf einem RemoteComputer starten möchte und man mit diesem nicht verbunden ist.

    Dies hat mit der Windows GUI zu tun. Windows erkennt nicht, dass Fenster aktiv werden und so ist auch keine Eingabe möglich.
    Auch das starten von AutiIt über einen Dienst bringt nicht den gewünschten Effekt.

    Abhilfe soll aber VNC schaffen, mit dem man sich auf ein RemoteSystem einwählt. In VNC kann man einstellen, dass Windows weiterhin aktiv sein soll, sich somit nicht abmeldet wenn man die RemoteSession schließt. Habe es aber noch nicht getestet, ein User hatte aber diese Möglichkeit entdeckt:

    Zitat

    [...] Ich konnte das Problem erstmal lösen, indem ich nicht den Remotedesktop sondern VNC benutze. Dort gibt es eine Einstellung, die den Benutzer auf dem Server nach Trennung der Verbindung nicht abmeldet. Somit kann das Programm wie geplant ablaufen [...]


    Edit

    Was ich gerade auch noch gefunden habe:
    Bei Nutzung von der Windows Remotedesktopverbindung kann man sich selbst eine "disconnect"-Datei erstellen, die die Verbindung unterbricht, aber den Benutzer eingeloggt lässt. So funktioniert auch wunderbar mein AutoIt-Skript, welchen jetzt täglich läuft. Einziger unterschied: - Man muss diese Datei per doppelklick ausführen, anstelle über Windows -> Trennen o.ä.

    Der Code einfach in einer Textdatei erstellen und als .cmd-Datei speichern:

    Code
    %windir%\System32\tscon.exe 0 /dest:console

    Einmal editiert, zuletzt von Nighty (24. September 2009 um 16:11)