Probleme beim Control auslesen

  • Hi,

    ich bin dabei mich wieder in AutoIT einzuarbeiten (hab vor langer Zeit schon mal was damit gemacht). Fürn Anfang soll ein Notepad-Fenster geöffnet werden, ein Text reingeschrieben werden und das Ganze unter einem bestimmten Pfad gespeichert werden. Ich hab mir überlegt das mit ControlSend() zu machen allerdings scheint das ziemlich aufwändig. Hier mein bisheriger Code:

    Code
    If	FileExists("Bibliotheken\Dokumente\Test4You.txt") Then	FileDelete("Bibliotheken\Dokumente\Test4You.txt")EndIfIf ProcessExists("notepad.exe") Then	ProcessClose("notepad.exe")Else	Run("notepad.exe")	WinWaitActive("Unbenannt - Editor")	ControlSend("Unbenannt - Editor", "", 15, "Test4You")	WinClose("Unbenannt - Editor")	WinWaitActive("Editor")	ControlClick("Editor", "&Speichern", "")	WinWaitActive("Speichern unter")	;Prüft ob in der Pfadleiste der richtige Pfad (Bibliotheken/Bilder) steht	;Falls ja, wird im Dateinamen-Feld der entsprechende Dateiname geschrieben	;Falls nein, wird in der Pfad-Leiste der Pfad eingetragen, der Dateiname vergeben und auf Speichern gedrückt	If ControlGetText("Speichern unter", "Adresse: ", 1001) == "Bibliotheken\Bilder" Then		ControlSend("Speichern unter", "", 1001, "Test4You.txt")		ControlClick("Speichern unter", "&Speichern", 1)	Else		ControlSend("Speichern unter", "Adresse: ", 1001, "Bibliotheken\Bilder"		ControlSend("Speichern unter", "", 1001, "Test4You")		ControlClick("Speichern unter", "&Speichern", 1)	EndIf
    EndIf


    Nur leider gibts hier erstmal Fehlermeldungen (ich nehme an da die Eigenschaften der Controls für die ControlSend()-Funktion annähernd identisch bzw. identisch sind). Gibts eine Möglichkeit direkt auf das Control zuzugreifen (AutoIt-Window Info zeigt ja auch noch explizite Control-Eigenschaften an).
    Außerdem ist möglicherweise bei der Überprüfung auf den richtigen Pfad ein Fehler, da im Control als Text steht "Adresse: + "Pfad"". In meinem Fall steht da eben schon "Bibliotheken\Bilder", falls das da aber nicht steht würde der Text des Controls auch anders heißen, dann ist aber kein Vergleich mehr möglich da es das Control dann möglicherweise gar nicht mehr gibt (unter dem Namen). Ich hoffe ihr versteht was ich meine  :love:

    Einmal editiert, zuletzt von CrazyAutoIT (22. Juni 2013 um 15:16)

  • Ich will nicht in eine Datei schreiben sondern eine neue erstellen und den Inhalt des Notepads in diese Datei speichern.

    Code
    _FileCreate()

    Danke!

  • Dann nimmst du den Vorschlag von minx und liest vorher den Inhalt des Controls aus, alles weitere ließe sich in der Hilfe nachlesen.

    [autoit]

    ControlGetText("[CLASS:Notepad]", "", "[CLASS:Edit]")

    [/autoit]