Mehrzeilige Eingabe aus GUI Edit per Tastendruck in Word eingeben

  • Hallo liebe Community :)

    Ich hab hier ein echtes Problem. Ich versuche mir ein Tool zu schreiben, mit dessen Hilfe ich mir einen Text, welcher in einer GUI hinterlegt wird, per Knopfdruck auf F4 ausgeben lassen kann.

    Das Problem dabei ist, dass in Word/ OpenOffice für jede Zeile eine neue Seite angelegt wird und nicht wie vorhergesehen einfach nur ein {Enter} gesendet wird.

    Hier ist mein Code:

    Ein Beispiel:


    Ich gebe in die GUI folgenden Text ein:

    hallo
    hall
    hal

    Genau so erwarte ich ihn dann auch wieder in Word, jedoch wird mir für jede Zeile eine neue Seite angelegt...

    Wäre Klasse wenn jemand von euch mir da weiterhelfen kann :D

  • Nimm die Word.au3. Diese UDF ist standardmäßig bei AutoIt dabei, damit lässt sich dein Problem lösen. Einfach die _Word_*-Funktionen nutzen, zb.: _Word_DocRangeSet .

    Einmal editiert, zuletzt von autoBert (25. Oktober 2015 um 14:30)

  • Danke für den Vorschlag :)

    Leider steht Word hier nur als Beispiel. Ich will dieses Tool wirklich in allen Eingabefeldern benutzen können. Ganz Programmunabhängig.

    z.B. in Google Keep, Thunderbird und co.

    Hat jemand noch eine weitere Idee dazu?

  • Ich kann mir dieses Verhalten zwar nicht erklären... Dafür ist mir ein Workarround eingefallen. Du schiebst deinen zu schreibenden Text einfach in die Zwischenablage und sendest dann nur noch Strg+V, um ihn einzufügen. Das geht auch schneller und sieht nicht so aus, als ob die Tasten wirklich nacheinander gedrückt werden würden. Sähe in deinem Code etwa so aus:

    [autoit]


    Func startf4()
    $vOldClip = ClipGet()
    ClipPut($text)
    Send("^v")
    ClipPut($vOldClip)
    EndFunc

    [/autoit]
  • Das Problem ist, dass die Edits CRLF mitspeichern - nicht Enter. ;) Und das Dokument behandelt CRLF nicht wie Enter:

    Code
    Func startf4 ()
    	$text = StringReplace($text, @CR, "")
    	$text = StringReplace($text, @LF, "{Enter}")
       Send ($text)
    EndFunc

    Es gibt Tage, da trete ich nicht ins Fettnäpfchen. Ich falle in die Friteuse.