Hey,
wollte mal eine Sache zur Statemachine fragen. Ich öffne in einem Zustand mit ActiveX eine Excel Datei. Nun möchte ich es erreichen, dass der nächste Zustand erst erreicht wird, wenn ich Excel wieder schließe. Z.zt. Öffnet Excel und der nächste Zustand startet sofort und wartet nicht bis Excel geschlossen wird.
Danke schonmal für eure Hilfe.
H_S
Hey,
so, hier hab ich mal ein Beispiel geschrieben wie ich das meine mit simplen weiteren cases. Sonst wird das zu unübersichtlich wenn ich mein Gesamtprogramm einfüge.
Im ersten case wird Excel geöffnet und nun soll der nächste Zustand erst starten, wenn in Excel der Anwender das Fenster schließt.
Wie kann ich so etwas realisieren?
LG

Ich hab' mir das Bsp. nicht angeschaut, aber Du könntest ja den Benutzer im einfachsten Fall auch fragen, ob er Excel bearbeitet und geschlossen hat und dann erst weitermachen.
Wenn nicht, dann frag' doch einfach die aktiven Windows-Prozesse ab und wenn da EXCEL.EXE drin steht wartest Du, wenn es beendet wurde und nicht mehr drin steht, machst Du weiter.
Hier ein Bsp., um die Prozesse anzuzeigen:
[
attachment=20109]
Gruß Markus
Ich würde nicht in dem Excel öffne State bleiben, bis der User Excel wieder beendet. Sondern Excel öffnen und wieder in den Idle State wechseln. Ok, evtl. hast du das nur in diesem Bsp. nicht gemacht.
Um mitzubekommen, wenn Excel (das Workbook das du geöffnet hast) geschlossen wird, kannst du mit Ereignis-Callback auf das "WorkbookBeforeClose" reagieren.
Hmm, keine Ahnung wie man dann "richtig" weiter machen sollte, ich hab einfach in dem CallbackVI eine Globale Variable (BeforeClose) auf True gesetzt und im Idle State ausgewertet.
Ist BeforeClose = True, dann wird der nächste State angesprungen, ist BeforeClose = False bleiben wir im Idle State.

[
attachment=20113]

[
attachment=20114]

[
attachment=20112]
Hoffe es hilft dir weiter.
Gruß SeBa