Tastatureingabe bei der Windows Aufgabenplanung

  • Hallo Leute,
    ich verzweifele seid jeher an der Tastatureingabe von AutoIT.
    Die letzten Male konnte ich mich darum drücken, in dem ich alternative Methoden eingesetzt habe, jedoch muss ich dieses mal Wirklich mit der GUI Arbeiten.

    Ich starte die Windows Aufgabenplanung mittels einfachem:

    [autoit]

    #include <Process.au3>
    _RunDos("%windir%\system32\taskschd.msc /s")

    [/autoit]


    Anschließend wollte ich eigentlich nur ne ALT+t Kombination machen um dann mittels Pfeile-Tasten eine neue Aufgabe zu erstellen, allerdings wird kein Tastenbefehl an das Fenster geschickt.


    Mit folgenden Zeilen Quellcode habe ich es bereits versucht. Ich verwende das Window Info Tool und habe dabei die folgenden Bereich Ausgewählt:

    http://imageshack.us/f/827/unbenanntvkv.png/

    [autoit]

    Sleep(3000)ControlSend("Aufgabenplanung", "", "[ID:4097]", "!t")Sleep(2000)ControlSend("Aufgabenplanung", "", "[ID:4097]", "{ALT}")Sleep(2000)ControlSend("Aufgabenplanung", "", "[ID:4097]", "t")Sleep(2000)ControlSend("Aufgabenplanung", "", "[ID:4097]", "{LALT}")Sleep(2000)Send("t")
    ControlSend("Aufgabenplanung","","[CLASS:ReBarWindow32; INSTANCE:1]","!t")
    Sleep(2000)ControlSend("Aufgabenplanung","","[CLASS:ReBarWindow32; INSTANCE:1]","{ALT}")Sleep(2000)ControlSend("Aufgabenplanung","","[CLASS:ReBarWindow32; INSTANCE:1]","t")

    [/autoit]

    Ich hoffe jemand weiß Rat.

    Gruß Ashitaka

    PS: Keine Ahnung warum beim Quellcode hier alle Zeilenumbrüche entfernt werden, ich habe versucht sie wieder rein zu machen, hat aber nicht funktioniert.

  • Ah danke, gut zu wissen schau ich mir mal an, aber das ding ist, ich muss später wirklich eine eingabe durch einen Benutzer Simulieren und deshalb muss ich Maus und Tastatur Eingaben machen können, woran liegt das, dass man trotz Class und Instanze keine Tastatur-Befehle senden kann?

    Gruß Ashitaka

  • Weil du das falsch machst? Du sendest ALT machst ne Pause und sendest T. Was passiert wenn du das von Hand machst? ALT drücken loslassen, 2 Sekunden warten und T drücken... da passiert dann eben nix. :P

    Wie man Tastenkombinationen sendet kannst du unter anderem hier nachlesen:

    http://translation.autoit.de/onlinehilfe/functions/Send.htm


    Für ALT+T wäre das also

    [autoit]


    send("!t")

    [/autoit]

    Funktioniert bei controlsend natürlich genauso.

  • Mein zweiter Befehl ist ja genau dieser.


    [autoit]

    ControlSend("Aufgabenplanung", "", "[ID:4097]", "!t")

    [/autoit]


    und weiter unten

    [autoit]

    ControlSend("Aufgabenplanung","","[CLASS:ReBarWindow32; INSTANCE:1]","!t")

    [/autoit]

    [font=monospace]

    [font=monospace]Nützt aber nichts.
    [font=monospace]Gruß Ashitaka

  • Joar hab ich wohl übersehn, da dein script ja unformatiert angezeigt wird. Anderer Browser und aktiviertes javascript hilft btw. damit der Autoit Tag funktioniert.
    Die send Befehle haben soweit ich weiß alle eins gemeinsam, das Fenster bzw das Control müssen bei Tastaturbefehlen den Focus haben (winactivate, winwaitactive, controlfocus usw. helfen da...), kann man auch in der Hilfe von controlsend nachlesen.

    Außerdem muss das Fenster auch existieren, das prüft man mit winexists.

  • Habe es jetzt gerade mit folgendem Code versucht:

    [autoit]

    #include <Process.au3>_RunDos("%windir%\system32\taskschd.msc /s")Sleep(3000)WinActivate("[CLASS:MMCMainFrame]")winwaitactive("[CLASS:MMCMainFrame]")ControlSend("Aufgabenplanung", "", "[MMCMainFrame]", "!t")

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

    WinActivate("[CLASS:MMCMainFrame]")winwaitactive("[CLASS:MMCMainFrame]")Sleep(2000)ControlSend("","","[CLASS:MMCMainFrame]","!t")

    [/autoit]


    Allerdings ist das Ergebnis auch wieder nicht existent.

    Wo liegt denn hier der Fehler, das Programm terminiert ja von selbst.

    Gruß Ashitaka

  • Ahja und wenn das Script z.B. auf einem PC ausgeführt werden soll auf dem zwar Benutzer angemeldet, aber nicht aktiv verbunden sind, also kein Desktop angezeigt wird (getrennte Remoteverbindung z.B. oder gesperrter Computer), dann greifen send und click Befehle bzw. alle Interaktionen mit Fenstern auch nicht.