Benutzer mit den meisten Antworten
Frage zu Start von Excel mit WaitForExit() - funktioniert nur dann wenn Excel noch nicht läuft.....

Frage
-
Hallo
Ich hätte eine Frage zu einer Excel-Integration in eine C#-WinForm-Anwendung.
Es gibt ein Dokument in dieser Applikation, das nur über Excel gelöst werden kann - jetzt starte ich so den Excel-Prozess:
var p = new Process(); p.StartInfo = new ... p.Start(); p.WaitForExit();
und warte in der Applikation mit WaitForExit() auf die Rückkehr des Benutzers aus der Excel-Bearbeitung, und kann dann alle weitere Schritte setzen.
Funktioniert soweit ganz gut -- außer, Excel ist schon gestartet / oder ein anderes Excel-Dokument ist auf dem Rechner bereits geöffnet. Dann funktioniert der WaitForExit() einfach nicht......
Kann ich das auch mit meinem Aufruf von Excel via new Process() lösen, dass WaitForExit funktioniert / nur das bestimmte Excel-Dokument aus der Applikation geöffnet wird / und dann nach dem WaitForExit() die Applikation wieder weiter arbeitet - und ohne dass das bestehende bereits geöffnete Excel-Dokument davon betroffen ist.
Hat dazu hier vielleicht jemand einen Tipp oder Rat für mich ??
Vielen Dank schon mal & schönen Gruß
Michael
Michael Erlinger
Antworten
-
Hallo,
Excel macht dir da einen Strich durch deine Rechnung, indem je nach Einstellung alles über den selben Excel-Prozess geregelt wird. Entsprechend hilft WaitForExit nicht wirklich.Allerdings finde ich die Idee aus diesem Thread nicht schlecht, wo einfach geguckt wird wenn die Datei geschrieben wurde. Aufpassen solltest du jedoch trotzdem, falls der Benutzer mal zwischen speichert. Versuche in dem Fall den Dateistream mit Schreibberechtigungen zu öffnen - wenn es schief geht ist die Datei wahrscheinlich noch offen.
Wir hatten schon mal eine ähnliche Frage im Forum - damals kam noch als Lösungsvorschlag, dass der Benutzer im Programm einfach bestätigen soll, wenn er fertig ist.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert M.Erlinger Mittwoch, 25. Februar 2015 07:16
Alle Antworten
-
Hallo,
Excel macht dir da einen Strich durch deine Rechnung, indem je nach Einstellung alles über den selben Excel-Prozess geregelt wird. Entsprechend hilft WaitForExit nicht wirklich.Allerdings finde ich die Idee aus diesem Thread nicht schlecht, wo einfach geguckt wird wenn die Datei geschrieben wurde. Aufpassen solltest du jedoch trotzdem, falls der Benutzer mal zwischen speichert. Versuche in dem Fall den Dateistream mit Schreibberechtigungen zu öffnen - wenn es schief geht ist die Datei wahrscheinlich noch offen.
Wir hatten schon mal eine ähnliche Frage im Forum - damals kam noch als Lösungsvorschlag, dass der Benutzer im Programm einfach bestätigen soll, wenn er fertig ist.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert M.Erlinger Mittwoch, 25. Februar 2015 07:16
-
Hallo Tom
vielen Dank für Deine Rückmeldung. Der Link, mit dem Vorschlag der Datei-Überwachung ist nicht schlecht.....ich glaube den werde ich in die Applikation für den Excel_Bearbeitungs-Teil einbauen.
Du hast auch als letzten Satz geschrieben "...damals kam noch als Lösungsvorschlag, dass der Benutzer im Programm einfach bestätigen soll, wenn er fertig ist" --> Meinst Du im Excel eine Abfrage oder via Makro im Excel?? oder in der Applikation?
Schönen Gruß, Michael
Michael Erlinger
-
Hallo,
Meinst Du im Excel eine Abfrage oder via Makro im Excel?? oder in der Applikation?
Ich meinte einen Button/Menübefehl in der Anwendung. Die Anwendung ruft also Excel auf, sodass der Benutzer seine Daten editieren kann. Nachdem er fertig ist, speichert er die Datei und schließt Excel. Nun geht der Benutzer wieder in die Anwendung und sagt über den Button dass die Datei neu eingelesen werden soll.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets