Word-Dokument in einem geöffneten Word-Fenster öffnen.

  • Moin,
    ich bins wieder mit ner Frage zur Word.au3. Ich öffne ein Dokument und lasse es in die GUI einbetten. Nun möchte ich die Möglichkeit haben ein neues Dokument in die eingebettete Word-Instanz öffnen zu können ohne die alte schließen und eine weitere neu einbetten zu müssen. Denn das dauert zu lang und sieht unsauber aus.

    Finde dafür keine passende Funktion, hab es mit den normalen

    AutoIt
    $hPid=_Word_DocOpen($wordobject,$Sigpath&"\"&$SigList[1])

    und mit

    AutoIt
    $hPid=_Word_DocAdd($wordobject,$WdNewBlankDocument,$Sigpath&"\"&$SelSig)

    probiert. Leider wird immer eine neue Instanz geöffnet obwohl ich das Objekt der bereits offenen Instanz verwende.

    Ideen?

  • Von welcher Word-Version reden wir hier?

  • Oh doch noch ne Antwort! :)
    Dachte schon ich werd hiermit allein gelassen :S

    Eingesetzt wird das Skript lediglich unter MS Office Home & Business 2016.
    Habe eben die letzen 6h auch noch mal versucht irgendeine Möglichkeit zu finden Word dazu zu bringen eine weitere Datei im selben Fenster zu öffnen - keine Idee mehr ?(

  • Probier das ganz mal ohne es in die GUI einzubetten. Wenn es ohne GUI funzt, dann wissen wir, dass das Problem mit der Einbettung in das GUI zu tun hat.
    Wenn Du von Instanz sprichst, dann meinst du die Word.exe?

  • Habe ich gestern schon, hier ein Bspskript:


    Ich meine einfach das er ein zweites Dokument im selben Word-Fenster öffnen soll, stattdessen öffnet er egal mit welchen Aufruf ein neues Word-Fenster.

    PS: Was mir auch noch aufgefallen ist, das _Word_DocClose() keine Funktion bei mir hat. Hier passiert nix, das Dokument bleibt geöffnet und ist weiter normal zu bearbeiten etc. Zum Schließen der Datei funktioniert nur

    AutoIt
    _Word_Quit($wordobject,$WdDoNotSaveChanges)

    nur wird dann auch die Word-Anwendung komplett geschlossen, also auch keine Möglichkeit mit einer anderen Datei anzuknüpfen. X/

  • Schaue ich mir morgen an.
    Wie rufst Du _Word_DocClose auf und welchen Wert hat danach @error und @extended?

  • Unter Office 2010 bringt ein Beispielskript folgendes Ergebnis:

    • Eine Windword.Exe im Taskmanager
    • Zwei Word Icons in der Taskleiste
    • Zwei Word Fenster

    Aber genau so macht es Word, wenn ich die beiden Dokumente einzeln öffne.
    Wie würdest Du zwischen beiden Dokumenten hin und her schalten, wenn das erste davon unsichtbar wäre?

  • Moin,
    tatsächlich! Habe das eben nochmal reproduziert: "Offenes Dokument=>Datei=>Öffnen=>Dokument auswählen" öffnet dann tatsächlich auch ein neues Fenster... X/
    Bei älteren Word-Versionen als 2016 öffnet er die Datei auch in ein extra Fenster?

    Aktueller Stand:
    Ich lasse einen Ordner auf Dokumenten untersuchen und schmeiß die Dateinamen in ne ListView(), beim auswählen sollte dann diese Word-Datei möglichst unauffälig in die GUI eingebettet werden und zur Bearbeitung verfügbar sein. Nur das immer erneute einbetten und Schließen und Öffnen der Word-Instanzen dauert und sieht nunmal ziemlich unsauber aus. (Bekomme das Word-Fenster nicht komplett unsichtbar bis zum einbetten)

    Dann bleibt eventuell nur noch alle Dateien beim Programmstart zu öffnen (sind in der Regel immer nur max 5 pro Einsatz) und sobald das ListView-Element angeklickt wird das Fenster sichtbar zu setzen. (Evtl. kann man sogar alle schon unsichtbar einbetten? ?( )

  • Bei älteren Word-Versionen als 2016 öffnet er die Datei auch in ein extra Fenster?

    Zumindest bei Office 2010.

    Um Word unsichtbar zu machen kannst Du Dir Application.Windows(x).Visible = False oder Document.Windows(x).Visible = False ansehen. Weiss aber nicht, wie sich das bei imbedded verhält.

  • Hey water,
    danke für den Tipp. Das könnte klappen wenn ich das WindowHandle auch im unsichtbaren Zustand abfragen könnte, denn

    AutoIt
    $wordwinclass="[CLASS:OpusApp]"
    $hChild = WinGetHandle($wordwinclass,"Word")

    bekommts wie vermutet nicht hin. Könnte man das Handle auch über den Prozess von Word abfragen?

  • Sieht das AutoIt Window Info Tool das eingebettete Word Objekt als eigenes Fenster?
    Ich dachte, dass dies sowieso nicht ganz mit dem GUI von Word zu vergleichen ist, da es sich um eine ActiveX Komponente handelt.

  • Kannst Du bitte den Code posten mit dem Du Word in die GUI einbindest? Bei mir gibt es Probleme beim Zeichnen des Word Objektes.

  • Cooles Skript!
    Zumindest das _Word_Quit Problem konnte ich lösen:
    Wo das Problem liegt muss ich erst noch eruieren!

    Da gab's kein Problem! Dass WinWord nach Skriptende immer noch lief, lag daran, dass von einem abgestürzten Testlauf WinWord hängengeblieben war.

  • _Word_Quit() funktioniert auch, wenn auch bisschen langsam. ?(
    _Word_DocClose() hingegen scheint keine Funktion auf Word 2016 zu haben.

    Ja das Skript wäre echt super hier in der Firma. Wenn die Save-Funktion noch irgendwie mit 2016 machbar wäre kann ich mir in Zukunft sparen mehr als 50 Arbeitsplätze zu Fuß aufzusuchen um mal wieder eine Änderung an unserer Firmen-Signatur in Outlook bei allen Mitarbeitern durchzuführen. :S

    Wäre echt super wenn du die Funktion noch hinbekommst, mit einem "Strg+S" kann es nämlich auch nicht umgehen. Bin auf das speichern in 3 verschiedenen Formaten dafür angewiesen (htm,rtf und txt)

    Vielen Dank! ;)

  • Im engl. Forum gibt es nun eine angepasste Version für _Word_DocSaveAs: autoitscript.com/forum/topic/1…open-and-_word_docsaveas/

  • Leider bringt der neue Code keine Änderung. Ich bekomme immer noch selben Fehlercode ausgespukt und die Datei wird nicht gespeichert.


    [Blockierte Grafik: https://www2.pic-upload.de/img/33506036/test.png]

  • Hallo @chrisbyRRC,

    ich denke, dein Problem hängt einfach mit deinen lokalen Berechtigungen zusammen.

    Ändere den Zielpfad mal auf ein anderes Laufwerk als C:\ oder schreibe ganz oben in dein Skript #RequireAdmin. Ich bin recht zuversichtlich, dass du damit Erfolg hast.

    Grüße autoiter

  • Wenn Du als RTF oder TXT sichern willst, dann musst Du das auch als Parameter 3 angeben. Nur die Extension ändern genügt Word nicht mehr!