Event rozpoznajacy zamkniecie systemu i Shared variable

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Awatar użytkownika
semper fidelis
Posty: 74
Rejestracja: 28 paź 2014 20:45
Wersja środowiska: LabVIEW 2013

Event rozpoznajacy zamkniecie systemu i Shared variable

Post autor: semper fidelis »

Witam,

Mam dzis dwa nurtujace mnie pytania:

1. Pierwsze czy jest mozliwosc stworzenia eventu monitorujacego zamkniecie systemu?

Moze wyjasnie skad ten pomysl, problem polega na tym ze moj programik uzywany jest przez wiele osob w sieci (znajduje sie na dysku sieciowym), jezeli chce wydac nowa wersje to zeby usunac stara musi on byc zamkniety na wszystkich komputerach, nie chce mi sie chodzic po calej firmie i sprawdzac kto ma wlaczone wiec wymyslilem ze bede mial pliczek na dysku sieciowym w ktorym bedzie zapisywana nazwa komputera i ip na ktorym program jest uruchamiany oraz usuwany z niego gdy program zamykany wiec bede mial dostep do listy gdzie jest uruchomiony aktualnie.

Poblem pojawia sie np przy zamknieciu systemu gdy program jest wlaczony (pomijam narazie opcje zakmniecie procesu z menagera urzadzen) bo nazwa komputera nie zostanie usunieta z pliku, dlatego pytam czy mozna wywolac event w tymze programie gdy ktos bedzie chcial wylaczyc komputer?

2. A drugie pytanie o zmienna Shared variable - nadmienie ze nie mam o tym wiekszego pojecia.

Chcialbym zapisywac Shared variable na naszym dysku sieciowym i to bylby serwer dla mojej zmiennej. Powiedzmy ze jest to dysk zmapowany jako Z: (lub tez ma jakis adress ip 192.168.2.1\Data)

Jak mam teraz zapisywac ta zmienna na tym dysku? Tzn jak ustawic host dla zmiennej (okno shared variable w zalaczniku)
Załączniki
shared.png
Gdy wszyscy wiedzą, że coś jest niemożliwe, przychodzi ktoś, kto o tym nie wie, i to robi...
Awatar użytkownika
aaddaas
Posty: 202
Rejestracja: 26 cze 2013 20:42
Wersja środowiska: LabVIEW 2015

Event rozpoznajacy zamkniecie systemu i Shared variable

Post autor: aaddaas »

ad 1. A nie wystarczy filter event "applicatcion instance close?"? Ponieważ, przy działającym programie, gdy użytkownik wybierze zamknięcie systemu - program i tak dostanie informację by się zamknąć (poprawcie mnie, jeśli się mylę).
http://digital.ni.com/public.nsf/allkb/ ... 6000606A64
Obrazek
Awatar użytkownika
semper fidelis
Posty: 74
Rejestracja: 28 paź 2014 20:45
Wersja środowiska: LabVIEW 2013

Event rozpoznajacy zamkniecie systemu i Shared variable

Post autor: semper fidelis »

A to bardzo ciekawe sprawdze to jutro! Ciekawi mnie tylko to wylogowanie z systemu przeciez uruchomione aplikacje dalej zostaja uruchomione wtedy tego eventu bym nie chcial wywolywac. Jak to zadziala to dzieki za pomoc!
Gdy wszyscy wiedzą, że coś jest niemożliwe, przychodzi ktoś, kto o tym nie wie, i to robi...
pawhan11
Posty: 67
Rejestracja: 21 wrz 2011 16:25
Wersja środowiska: LabVIEW 2012

Event rozpoznajacy zamkniecie systemu i Shared variable

Post autor: pawhan11 »

Jeżeli dobrze zrozumiałem to każdy kopiuje exeka z dysku sieciowego i używa na swoim kompie w obrębie sieci?
Jeżeli tak to możesz zrobić sobie prosty programik "serwer" który bedzie sie laczyl z twoimi programami działającymi na innych PC w tej sieci.
Będziesz wiedział kto i z jakiego adresu IP używa twojego programiku, Prosto da się dorobić wymianę dowolnych wiadomosci np zamkniecie czyjegos programu, informacja o nowej wersji do pobrania itp

Robiłem kiedyś coś podobnego w oparciu o TCP, tutaj bardzo dobra biblioteka:
https://lavag.org/files/file/196-transportlvlib/
CLS - Certified LabVIEW Student
Awatar użytkownika
semper fidelis
Posty: 74
Rejestracja: 28 paź 2014 20:45
Wersja środowiska: LabVIEW 2013

Event rozpoznajacy zamkniecie systemu i Shared variable

Post autor: semper fidelis »

Nie do konca kopiuje... po prostu uruchamia to z dysku sieciowego z tej samego exe kazdy.

Ten serwer ciekawy ale dosc skomplikowana i obszerna biblioteka ale dzieki!

Co do Application instance close faktycznie to by sie sprawdzalo, ale w momencie zamykania systemu wyskakuje okno ze VI dziala i mozna kliknac Quit albo Cancel, teraz jesli kliknie sie Quit to event sie wykonca, a jesli przez pare sekund sie nic nie wcisnie to program i tak sie wylaczy ale event nie zostanie wykonany.


Pomoze ktos jeszcze z zapisem Shared variable na dysku sieciowym? Jak w oknie ktorym podalem w zalaczniku to ustawic?
Gdy wszyscy wiedzą, że coś jest niemożliwe, przychodzi ktoś, kto o tym nie wie, i to robi...
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: Event rozpoznajacy zamkniecie systemu i Shared variable

Post autor: PiDi »

Shared Variable działa na serwerze, który jest zwykłą aplikacją. Aplikacji nie uruchamia się "na dysku sieciowym", tylko w systemie operacyjnym. Musisz mieć system z zainstalowanym serwerem ShVa i tam możesz zdeployować tę zmienną. Z reszty twojego opisu wnioskuję, że nie jest to rozwiązanie, którego potrzebujesz, więc nie będę wchodził w szczegóły.
ObrazekObrazekObrazekObrazek
Awatar użytkownika
semper fidelis
Posty: 74
Rejestracja: 28 paź 2014 20:45
Wersja środowiska: LabVIEW 2013

Event rozpoznajacy zamkniecie systemu i Shared variable

Post autor: semper fidelis »

Wyjasniles dokladnie to czego potrzebowalem i co wlasnie przypuszczalem. Dzieki za pomoc.
Gdy wszyscy wiedzą, że coś jest niemożliwe, przychodzi ktoś, kto o tym nie wie, i to robi...
Zyga
Posty: 86
Rejestracja: 26 sty 2012 23:36
Wersja środowiska: LabVIEW 2011

Re: Event rozpoznajacy zamkniecie systemu i Shared variable

Post autor: Zyga »

Dla potomnych. Można zarejestrować callback dla eventu SessionEnding.
Implementacja.
ODPOWIEDZ