LabVIEWForum.de
Labview Programm kontrolliert schließen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: DLL & externer Code (/Forum-DLL-externer-Code)
+---- Thema: Labview Programm kontrolliert schließen (/Thread-Labview-Programm-kontrolliert-schliessen)

Seiten: 1 2


Labview Programm kontrolliert schließen - Moxel - 21.05.2013 12:47

Hallo
ich habe immer wieder das Problem das bei einem Stromausfall oder durch das unsachgemäße Abschalten
einer Anlage meine PC Probleme haben.

Ich gehe davon aus das die VISA Resourcen nicht richtig geschloßen werden die ich vorher mit Labview geöffnet habe.
In meinen PCs sind zwar USVs verbaut aber da diese selbständig den PC herunterfahren und so quasi meine Labview
Programme abwürgen, können diese Resourcen nicht sauber beendet werden.

Gibt es eine exe Datei oder andere Möglichkeiten die ich in meiner USV aufrufen kann die
mir dann sozusagen in meinem Programm den Beenden Buttom Drückt und durch dies sauber die
Schnittstellen und Abmelde Prozedur durchführt ?


RE: Labview Programm kontrolliert schließen - Holy - 21.05.2013 12:58

Es gibt hierfür Events um das externe Beedingungssignal an deine Anwendung abzufangen. Sobald du dieses bekommst kannst du dann sauber deine Anwendung beenden. [attachment=44699]


RE: Labview Programm kontrolliert schließen - Moxel - 21.05.2013 13:31

Wie kann ich diese Events aufrufen ?
Ich habe nämlich in meiner USV die Möglichkeit Programme aufzufrufen wenn diese merkt
das der Strom weg ist.
Oder wie funktioniert das genau ?


RE: Labview Programm kontrolliert schließen - Holy - 21.05.2013 19:00

Dieser Event kommt wenn Windows versucht deine Anwendung zu beenden. Das kann z.B. sein wenn du Windows herunter fährst, über den Taskmanager einen Prozess beenden willst oder auch die Anwendung per "taskkill"-Befehl beenden willst.


RE: Labview Programm kontrolliert schließen - rolfk - 21.05.2013 21:35

(21.05.2013 19:00 )Holy schrieb:  Dieser Event kommt wenn Windows versucht deine Anwendung zu beenden. Das kann z.B. sein wenn du Windows herunter fährst, über den Taskmanager einen Prozess beenden willst oder auch die Anwendung per "taskkill"-Befehl beenden willst.

Fast gut! Taskkill killt die Applikation wirklich. Da werden keinerlei Events versendet. Gewehr im Anschlag und weg aus dem Speicher! Sonst wäre es nicht taskkill sondern taskclose!


RE: Labview Programm kontrolliert schließen - Holy - 21.05.2013 21:59

(21.05.2013 21:35 )rolfk schrieb:  Fast gut! Taskkill killt die Applikation wirklich. Da werden keinerlei Events versendet. Gewehr im Anschlag und weg aus dem Speicher! Sonst wäre es nicht taskkill sondern taskclose!

Das ist natürlich richtig, sorry für den Fehler!


RE: Labview Programm kontrolliert schließen - Moxel - 28.05.2013 14:58

Hallo zusammen
das mit dem EVENT Apparence_close funktioniert super nur leider würgt mir
Windows zu schnell mein Labview ab bevor mein Beenden Ablauf fertig ist.
Ich habe die zeit beim Taskkill in der reg von windows schon hoch
gesetzt nur leider bringt dies keine Verbesserung.
http://www.win-tipps-tweaks.de/cms/windows-7-tipps/tricks/windows-7-schneller-herunterfahren.html
habe das umgekehrt gemacht !!!

Hat noch jemand weitere Ideen ?


RE: Labview Programm kontrolliert schließen - Holy - 28.05.2013 16:42

(21.05.2013 21:59 )Holy schrieb:  
(21.05.2013 21:35 )rolfk schrieb:  Fast gut! Taskkill killt die Applikation wirklich. Da werden keinerlei Events versendet. Gewehr im Anschlag und weg aus dem Speicher! Sonst wäre es nicht taskkill sondern taskclose!

Das ist natürlich richtig, sorry für den Fehler!

Ich muss mein Einlenken hier nochmal revidieren. Ich habe es extra getestet und ein "taskkill /IM Application.exe" schickt ein Beendigungssignal an die Anwendung "Application.exe". Dieses kann mit dem Event "Application Instance Close?" abgefangen werden.

Zu deinem Problem vermute ich, dass dein Windows schon herunterfährt und entsprechend dann deine Anwendung abwürgt. Kannst du evtl. per Batch das Beenden vorher mittels taskkill auslösen? Weil ein "normaler" taskkill /IM kann mit dem Filter Event abgefangen werden ohne das Windows die Anwendung danach komplett abschiesst.


RE: Labview Programm kontrolliert schließen - Moxel - 29.05.2013 08:30

Hallo Holy
vielen Dank für deine Antwort.
Könntest du mir bitte mal dein Test VI schicken würden es gerne auf meinem
Rechner ausprobieren.
Ansonsten habe ich noch einiges gesucht aber nicht gefunden, es soll irgendwo
in der win7 reg eine Zeit geben die Programme zum beenden bekommen ich
meine aber nicht die schon oben genannte.
Diese Zeit heist glaube ich HungAppTimout konnte diese aber leider nicht finden.

Aber vieleicht geht es schon mit deinem Testvi und ich habe bei mir nur noch einen Fehler drin.


RE: Labview Programm kontrolliert schließen - Holy - 29.05.2013 17:15

Du musst den Event mit dem Filter Event "Application Instance Close ?" abfangen und die direkte Ausführung der Operation verhindern, d.h. mittels Discard? = TRUE das Schließen verhindern. Dein Problem ist sozusagen, dass du zwar auf den Event reagierst aber die Operation trotzdem ausgeführt wird und deine Anwendung beendet. Mittels Discard? = TRUE verhinderst du die Ausführung der Operation und kannst danach geordnet selbst dein Programm beenden.