Controlsend im Hintergrund

  • Hallo,

    folgendes Problem:
    Ich möchte gerne einen Prozess im Hintergrund starten.

    Beispiel:
    1. Notepad wird gestartet
    2. Es wird ein Text geschrieben

    bis hierhin ok!

    Aber wIe kann ich im Hintergrund auf das Menü zugreifen?

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    ShellExecute("Notepad.exe","","","", @SW_HIDE)
    Sleep(100)
    MsgBox(0,"Programm-Start","Notepad",1)

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

    ControlSend("[CLASS:Notepad]",'','[CLASS:Edit; INSTANCE:1]',"Hallo wird im Hintergrund geschrieben")
    Sleep(100)
    ;datei öffnen soll ausgeführt werden!
    MsgBox(0,"Programm","Text wird geSchrieben",1)
    ControlSend("[CLASS:Notepad]",'','[CLASS:Edit; INSTANCE:1]',"{ALTDOWN}{ALTUP}dn{ALTDOWN}{ALTUP}df")

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

    Sleep(2000); warten bis alles erledigt ist!
    ;Dialog wird angezeigt!

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

    WinSetState("[CLASS:Notepad]", "", @SW_show)

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


    EDIT:
    Ich hab's, WinActivate

    Grüße
    Ilse ;)

    3 Mal editiert, zuletzt von Ilse (26. August 2012 um 12:21)

  • Das macht man nicht mit controlsend und einer Tastenkombination. Um Menüpunkte eines Fensters anzusteuern verwendet man

    [autoit]


    WinMenuSelectItem

    [/autoit]

    Davon ab ist es normal nicht notwendig den Datei Öffnen Dialog zu automatisieren. Die meisten Programme kann man auch einfach per run und Parameter starten um eine Datei zu öffnen.

    Beispiel:

    [autoit]


    $filepath = "C:\test.txt"
    run("notepad.exe " & '"' & $filepath & '"')

    [/autoit]
  • Hallo Misterspeed,

    wieder was gelernt...

    Edit:

    Aber wie kann ich die Aktionen im
    Hintergrund ausführen?

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    ShellExecute("Notepad.exe","","","", @SW_HIDE)
    Sleep(100)
    MsgBox(0,"Programm-Start","Notepad",1)

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

    ControlSend("[CLASS:Notepad]",'','[CLASS:Edit; INSTANCE:1]',"Hallo wird im Hintergrund geschrieben")
    Sleep(100)
    ;datei öffnen soll ausgeführt werden!
    MsgBox(0,"Programm","Text wird geSchrieben",1)
    WinSetState("[CLASS:Notepad]", "", @SW_hide)

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

    ;WinActivate("[CLASS:Notepad]", "")
    WinMenuSelectItem("[CLASS:Notepad]", "", "&Datei", "Seite ein&richten..." )
    ;ControlSend("[CLASS:Notepad]",'','[CLASS:Edit; INSTANCE:1]',"{ALTDOWN}{ALTUP}os")

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

    Sleep(5000); warten bis alles erledigt ist!
    ;Dialog wird angezeigt!

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

    ;WinSetState("[CLASS:Notepad]", "", @SW_show)

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

    Ich meine z.B.
    wenn ich Seite einrichten wähle
    sollen ebenfalls im Hintergrund(versteckt) alle Anpassungen
    vorgenommen werden. Das geht aber nicht weil das Fenster gezeigt wird.


    Liebe Grüße
    Ilse ;)

    Einmal editiert, zuletzt von Ilse (26. August 2012 um 12:20)