Word öffnen

  • Hallo,

    wie öffne ich eine Word Datei mit auto IT? wenn ich den Pfad mit File open öffnen will, macht er garnix. Er zeigt mir auch keine Fehler an doer so....

    Danke im vorraus.

    So long ;),

    Kevin

  • mit FileOpen öffnest du eine text-datei und nicht wörd

    [autoit]


    ShellExecute ("winword"); öffnet nur Word
    ShellExecute ("C:\pfadzurdatei\datei.doc") ; sollte die Datei mit dem Standartprogramm öffnen

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Zitat

    Original von leviathan
    mit FileOpen öffnest du eine text-datei und nicht wörd

    [autoit]


    ShellExecute ("winword"); öffnet nur Word
    ShellExecute ("pfadzurdatei/datei.doc") ; sollte die Datei mit dem Standartprogramm öffnen

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


    nicht wÖrd?

    schade^^

    • Offizieller Beitrag

    Hier der Weg über Objekte. Da du nicht geschrieben hast, was du mit dem Dokument tun willst, habe ich in dem Bsp.
    - Objekt erstellen
    - DOC öffnen
    - Schriftgröße ändern
    - am Ende des Dokuments Text anfügen (hier Datum + Uhrzeit)
    - DOC speichern
    - DOC drucken (z.Zt. auskommentiert)
    - Objekt schließen

    Spoiler anzeigen
    [autoit]

    #Include <Date.au3>
    Dim $DOC_path = 'D:\Test.doc'

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

    Const $END_OF_STORY = 6
    Const $MOVE_SELECTION = 0

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

    $objWord = ObjCreate("Word.Application")
    $objWord.Visible = True ; oder False, wenn alles im Hintergrund laufen soll

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

    ; Worddokument öffnen
    $objDoc = $objWord.Documents.Open($DOC_path)

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

    $objSelection = $objWord.Selection
    ; zum Ende des Dokuments bewegen
    $objSelection.EndKey($END_OF_STORY, $MOVE_SELECTION)
    ; 2 Zeilenumbrüche setzen
    $objSelection.TypeParagraph()
    $objSelection.TypeParagraph()
    ; Schriftgröße auf 14
    $objSelection.Font.Size = "14"
    ; Datum + Uhrzeit schreiben
    $objSelection.TypeText( "" & _Now() )
    ; 2 Zeilenumbrüche setzen
    $objSelection.TypeParagraph()
    $objSelection.TypeParagraph()
    ; Schriftgröße auf 10
    $objSelection.Font.Size = "10"

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

    ; Dokument speichern
    $objWord.ActiveDocument.SaveAs($DOC_path)

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

    ; Dokument drucken
    ;~ $objDoc.PrintOut()

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

    ; Word beenden
    $objWord.Quit

    [/autoit]

    Falls ernsthafter Bedarf besteht, würde ich mich breitschlagen lassen, und analog zur Excel.UDF eine Word.UDF erstellen. (aber braucht man die wirklich ? ;) )

  • Hallo,

    du kannst per Fileopen aber auch word-Dokumente öffnen.

    Das geht dann in der Form:

    Code
    FileOpen ("Pfad zum Dokument", 2) ;2 steht für den Überschreiben-Modus

    Dann ist das File geöffnet. Man kann es nur nicht sehen.

    Zum schreiben in das Dokument brauchst Du dann den Befehl filewrite:

    Code
    Filewrite ("Pfad zum Dokument", "Text"Fileclose ("Pfad zum Dokument")


    Leerzeilen kann man mit @CRLF einfügen.

    Wofür genau brauchst Du das denn?

    Gruß

    • Offizieller Beitrag

    Hallo,

    in Word-Dateien was mit Filewrite zu schreiben ist für die Datei tödlich!

  • Hallo,

    Zitat

    in Word-Dateien was mit Filewrite zu schreiben ist für die Datei tödlich!

    hat bei mir bis jetzt aber immer funktioniert....Aber trotzdem gut zu wissen!

    • Offizieller Beitrag

    @srb & bernd:
    Nachdem AutoIt inzwischen auch Binärmodes beim Schreiben unterstützt, könnte man theoretisch damit schon Word-Dateien erzeugen. Allerdings ist dieses Binärformat nicht offengelegt und daher kaum möglich, das alles korrekt zu interpretieren. Erst mit Office 2007 wird das besser, denn dort ist es ein XML-Format, das auch dokumentiert ist.

    Aber der ShellExecute-Tipp von oben war glaube ich schon die Lösung...

    peethebee