Laden...

Ereignis abfangen beim Wechsel zw. EXCEL und Applikation

Erstellt von ulf vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.046 Views
U
ulf Themenstarter:in
3 Beiträge seit 2013
vor 10 Jahren
Ereignis abfangen beim Wechsel zw. EXCEL und Applikation

Hallo zusammen,

aus einer Applikation heraus starte ich EXCEL-Dateien, die dann bearbeitet werden. Beim Wechsel zurück in die Applikation benötige ich ein Ereignis in der Applikation, die es mir erlaubt die geänderten Daten aus den Excel-Dateien abzugleichen. Bislang bin ich nicht fundig geworden.

Grüße
Ulf

16.830 Beiträge seit 2008
vor 10 Jahren

Interessantes Problem.
Was Du nicht bedacht hast: wenn der Anwender das Fenster wechselt, ohne die Daten zu speichern, wie willst Du das erkennen?

Andere Programme, die Änderungen erfordern und darauf reagieren (zB mein FTP Programm) achtet auf die Dateiänderung und nicht auf eine Anwendung.

U
ulf Themenstarter:in
3 Beiträge seit 2013
vor 10 Jahren

Hallo Abt,

tja, wenn ich auf Änderungen achten würde, müsste ich alle Daten aller Tabellen vor deren Start speichern und anschließend vergleichen. Meiner Meinung nach sehr aufwändig. Zudem fehlt mir dann immer noch das Ereignis, dass auf die Applikation gewechselt wurde.

Dann wäre es doch einfacher die aktuelle Applikation zu ermitteln und mittels Ereignis (welches mir noch fehlt) die EXCEL Datei kurz zu speichern und dann die Daten neu auszulesen und mein internes Modell neu aufzubauen.

Die Frage ist doch: Wie komme ich an die Verwaltung der Applikationen und kann dort ein Ereignis abfangen, wenn sich der Fokus auf den einzelnen Fenstern ändert.

Viele Grüße
Ulf

1.346 Beiträge seit 2008
vor 10 Jahren

Mit dem FileSystemWatcher kannst du ganz einfach erkennen, dass eine Datei geändert wurde.

LG pdelvo

M
53 Beiträge seit 2008
vor 10 Jahren

Moin Ulf,

du solltest dir Office-Automation anschauen. Dort kannst du dann das Event Workbook.BeforeSave oder Workbook.BeforeClose registrieren.

Gruß
muhtanten

Gelöschter Account
vor 10 Jahren

Also die Theorie definiert das als einen Zwischenschritt der vom Betriebssystem ausgeführt wird. In anderen Worten du kannst einen anderen Prozess(Excel) starten und warten bis er beendet wird bevor du weiter irgendwie weiter agierst. Du kannst in der Folge noch versuchen das auf Timer und andere Threads auszulageren um die Reposonibility zu steigern. Ich muss solche SchaizzHacks auch oft durchziehen und kann dir nur raten nache anderen Wegen zu suchen sofern es deiner Macht liegt. Wenn nicht brauchst du einfach die Kentniss und Erfahrung so ne Nummer sauber durchzuboxen und das ist ein Alptraum den du dir nicht antuhen willst.