systemowe zamykanie programu

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
honda
Posty: 210
Rejestracja: 18 lis 2008 14:13
Wersja środowiska: LabVIEW 8.6
Kontakt:

systemowe zamykanie programu

Post autor: honda »

Witam,

jak zrobić aby bezpiecznie zamykać aplikację poprzez zamknięcię systemu Windows ? Aplikacja nie jest zatrzymywana ani zamykana krzyzykiem tylko poprzez Start - Zamknij system.

Pozdro
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: systemowe zamykanie programu

Post autor: jogurt_owocowy »

honda
Posty: 210
Rejestracja: 18 lis 2008 14:13
Wersja środowiska: LabVIEW 8.6
Kontakt:

Re: systemowe zamykanie programu

Post autor: honda »

A co jeżeli nie ma struktury Event w programie, bo przecież nie musi być ? Trzeba dołozyc ?
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: systemowe zamykanie programu

Post autor: jogurt_owocowy »

Struktura event jest czujką, która pozwala Ci na odebranie wewnątrz aplikacji informacji o zamykaniu systemu. Jeśli chcesz tę informację odebrać, to musisz dołożyć strukturę.
honda
Posty: 210
Rejestracja: 18 lis 2008 14:13
Wersja środowiska: LabVIEW 8.6
Kontakt:

Re: systemowe zamykanie programu

Post autor: honda »

To mam jeszcze pytanie. Czy struktura musi być jakoś uwikłana w program czy może wykonywac tylko Exit. Inaczej mówiąc Czy może być poza główna pętlą program ? Pewnie się tego nie zaleca ;).
Awatar użytkownika
bartus
Posty: 141
Rejestracja: 07 maja 2007 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Wrocław/Żory

systemowe zamykanie programu

Post autor: bartus »

jak bedzie poza glowna petla, to wykona sie tak jak inne rzeczy poza glowna petla; ogolnie to staramy sie tego unikac, zawsze mozesz zrobic glowna petle z maszyna stanow i jeden stan bedzie idle, ktory bedzie w sobie zawieral "reakcje na oczekiwany event".

Ewentualnie sposob na 2 petle (jedna od ui i druga od "reszty")
Jest pare rzeczy dla których warto zyc - TO,UE i nie zmienia sie nic :)
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

systemowe zamykanie programu

Post autor: jogurt_owocowy »

Szczyt elegancji to na pewno nie będzie, ale lepiej tak zareagować na zamknięcie systemu, niż wcale.
Przede wszystkim zauważ, że jeśli struktura będzie umiejscowiona goła, poza główną pętlą i będzie wyłapywać tylko event Application Exit?, to program nie zakończy się dopóki tego eventu nie złapie. Jeśli więc chcesz "dodatkowo" zatrzymywać program "normalnie" np. przyciskiem STOP, to musisz w strukturze event obsłużyć zmianę wartości tego przycisku albo jakiś event użytkownika, który wywołasz w momencie "normalnego" zakończenia programu.

Jeśli to, co napisałem jest nie do końca jasne, to daj znać - przygotuję Ci jakiś przykład.
honda
Posty: 210
Rejestracja: 18 lis 2008 14:13
Wersja środowiska: LabVIEW 8.6
Kontakt:

Re: systemowe zamykanie programu

Post autor: honda »

Witam

bardzo proszę o przykładzik, wtedy wszystko staje się jasniejsze.

pozdrawiam
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: systemowe zamykanie programu

Post autor: jogurt_owocowy »

Bardzo proszę.
Naciśnięcie przycisku STOP to "normalne" zamknięcie programu. Naciśnięcie przycisku Application Exit symuluje zamknięcie systemu.

Pozdrawiam
Załączniki
application exit event.vi
LV 8.6
(10.95 KiB) Pobrany 453 razy
honda
Posty: 210
Rejestracja: 18 lis 2008 14:13
Wersja środowiska: LabVIEW 8.6
Kontakt:

Re: systemowe zamykanie programu

Post autor: honda »

cos nie mogę Application Exit? znaleźć w Evencie :). Mam tylko Application Instance Close? Chciałem to zrobić tak jak w linku ale cos nie idzie.
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: systemowe zamykanie programu

Post autor: jogurt_owocowy »

Słuszna uwaga. Od wersji 8.2 eventy Application Exit i Application Exit? zmieniły nazwy na, odpowiednio, Application Instance Close i Application Instance Close?.
Co Ci nie idzie?
honda
Posty: 210
Rejestracja: 18 lis 2008 14:13
Wersja środowiska: LabVIEW 8.6
Kontakt:

Re: systemowe zamykanie programu

Post autor: honda »

Wszystko OK, miałem na myśli to, że nie mogę zanleźć Application Exe? Myślalem że coś nie tak znowu robię. Ale przy okazji, czy jest jakiś sposób sprawdzenia czy ta komenda wykonuje się porawnie ?
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: systemowe zamykanie programu

Post autor: jogurt_owocowy »

honda pisze:czy jest jakiś sposób sprawdzenia czy ta komenda wykonuje się porawnie ?
Utwórz/zapisz wewnątrz eventu jakiś plik i, po ponownym uruchomieniu systemu, sprawdź co z nim.
honda
Posty: 210
Rejestracja: 18 lis 2008 14:13
Wersja środowiska: LabVIEW 8.6
Kontakt:

Re: systemowe zamykanie programu

Post autor: honda »

Witam,

cos robię chyba nie tak. Kiedy próbuję wyłączyć komputer, cały czas mi zgłasza że "Alplikacja nie odbpowiada" i "Zakończ taeraz". Tak jakby wogóle tego Eventu nie widział.

Pozdro
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: systemowe zamykanie programu

Post autor: jogurt_owocowy »

Pokaż program.
ODPOWIEDZ