Announcement

Collapse
No announcement yet.

class Process() + Microsoft Word

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • class Process() + Microsoft Word

    Hallo Experten,

    ich habe ein Problem mit der Prozesskontrolle. Ich möchte folgendes in meinem Programm erreichen:
    Ich produziere per Fernsteuerung eine Word-Datei und speicher sie ab und beende sauber die COM-Session. Nun möchte ich das fertige Dokument dem User zeigen, so dass er noch manuelle Änderungen vornehmen kann. Ich starte über die Klasse Process() also einen neuen Prozess, öffne das Dokument und warte auf dessen Abschluss. Nun überprüfe ich, ob sich am Dateidatum etwas geändert hat, wenn ja möchte ich das Dokument auf der Datenbnk sichern.
    Eigentlich funktioniert das auch stabil, wenn nicht schon eine Instanz von Word geöffnet ist, z.B. über Outlook mit Word als Mail-Editor. Hier also ein Codebeispiel:
    //Eigenschaften der Datei ermitteln
    DateTime dtFileOrg = File.GetLastWriteTime(Filename);
    Process pr = new Process();
    pr.StartInfo.FileName = Filename;
    pr.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
    pr.Start();
    pr.WaitForExit(); //<-!!! hier kommt der Fehler bei schon vorher geöffnetem Word
    pr.Close();
    //nach Schließen des Prozesses Eigenschaften der Datei ermitteln
    DateTime dtFileNow = File.GetLastWriteTime(Filename);
    if (dtFileNow != dtFileOrg)
    {
    DialogResult diar = MessageBox.Show("Die Datei wurde verändert\nMöchten Sie die Änderungen auf der Datenbank speichern?",
    "Nachfrage", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
    if (diar == DialogResult.OK)
    {
    SaveBinFile(FileGuid, Filename, JobFileTyp);
    }
    }

    Kann man das Problem lösen, umgehen oder ganz anders an die Sache herangehen? Ich möchte den Aufwand natürlich begrenzen.
    Vielen Dank für eure Mühen schon jetzt.
    Viele Grüße
    O. Steffan

  • #2
    Hallo,

    &gt;Nun möchte ich das fertige Dokument dem User zeigen...

    in diesem Fall reicht es doch aus, die Automation-Instanz von Word über die Eigenschaft <b>Visible</b> sichtbar zu machen (d.h. der Anwender sieht diese Instanz erst dann, wenn das Programm die Daten ausgefüllt hat). Das Programm kann sogar die Word-Ereignisse (wie zum Beispiel das Schließen des aktuellen Dokuments) überwachen, so dass der Zeitpunkt exakt bestimmbar ist

    Comment

    Working...
    X