zamykanie programu EXE

Tematyka związana z Aplication Builderem oraz tworzeniem wersji exe programów w LabVIEW. Problemy związane z instalatorem programów oraz ich zabezpieczaniem.
santiago
Posty: 65
Rejestracja: 31 maja 2007 00:00

zamykanie programu EXE

Post autor: santiago » 29 kwie 2010 22:55

Witam!!

Jak zrobić aby zamykając program EXE za pomocą "X" program zatrzymywał pętle While Loop, tak jakbym wciskał przycisk STOP oraz wykonywał tą część, która jest poza pętlą (np zamknięcie portu).

POZDRAWIAM!!

Awatar użytkownika
Pitol
Moderator
Posty: 924
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków
Has thanked: 2 times
Been thanked: 8 times

zamykanie programu EXE

Post autor: Pitol » 29 kwie 2010 23:01

wykorzystaj Event: Panel Close? gdzie podpinasz Discard na True i terminator pętli też na True. Spowoduje to, że Panel nie zostanie zamknięty a pętla się skończy i kod za pętlą zostanie wykonany (jeśli chcesz zamknąć panel będziesz musiał to zrobić teraz programowo: patrz na rysunek)
panelclose.png
ObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj

santiago
Posty: 65
Rejestracja: 31 maja 2007 00:00

Re: zamykanie programu EXE

Post autor: santiago » 03 maja 2010 18:50

Witam!

Zrobiłem jak radzi kolega, niestety nie działa. Również i pętla nie działa nie wiedzieć czemu.
W zamyśle powinno funkcjonować to w taki sposób, aby w trakcie działania programu można było zmieniać wartość liczbową, a po zamknięciu programu wartość ta była zapamiętywana.
W załączniku plik i screen.
POZDRAWIAM!!
Załączniki
przyklad2.vi
(19.4 KiB) Pobrany 202 razy
przyklad2.JPG

Awatar użytkownika
Pitol
Moderator
Posty: 924
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków
Has thanked: 2 times
Been thanked: 8 times

Re: zamykanie programu EXE

Post autor: Pitol » 03 maja 2010 21:01

pętla nie działa ze względu na strukturę event, która czekając na obsługę zdarzeń blokuje pętlę While. Aby Twoja pętla działała (kręciła się non-stop) możesz np. podpiąć wejście Timeout (lewy górny róg struktury Event, ustaw powiedzmy na 50) i obsłużyć zdarzenie Timeout. Wtedy pętla będzie odświeżała się co 50ms.
ObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj

Awatar użytkownika
coolfon
Posty: 232
Rejestracja: 01 gru 2007 08:59
Wersja środowiska: LabVIEW 2009
Kontakt:

Re: zamykanie programu EXE

Post autor: coolfon » 03 maja 2010 21:05

santiago pisze: Również i pętla nie działa nie wiedzieć czemu
Pętla jak najbardziej działa! Po prostu czeka, aż 'wykona się' jej cała zawartość, w tym struktura Event. Ta z kolei czeka na jakiś event właśnie. Odpal sobie swój VI z włączoną opcją Highlight Execution (żarówka) to zobaczysz jak się program zachowuje.

Ogólnie rzecz biorąc, strukturę Event powinno się wrzucać do pętli While solo, bez dodatkowych elementów.

Aha... Czemu tak bardzo komplikujesz odczyt/zapis do pliku? Koniecznie potrzebujesz Open/Create/Replace File oraz Set File Position.

santiago
Posty: 65
Rejestracja: 31 maja 2007 00:00

Re: zamykanie programu EXE

Post autor: santiago » 03 maja 2010 21:43

OK!

Z "Timeout" działa :)
Ale kombinując zrobiłem jeszcze trochę inaczej, jednakże też nie bardzo chce działać :-? (załączniki)

"Czemu tak bardzo komplikujesz odczyt/zapis do pliku" - bo tak umiałem :) Może jakaś sugestia jak prościej??

POZDRAWIAM!!
Załączniki
przyklad1.vi
(22.25 KiB) Pobrany 206 razy
przyklad1.PNG

Awatar użytkownika
Pitol
Moderator
Posty: 924
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków
Has thanked: 2 times
Been thanked: 8 times

Re: zamykanie programu EXE

Post autor: Pitol » 03 maja 2010 21:51

teraz to przesadziłeś :D
wsadź strukturę Event do pętli While z powrotem to będzie działać (nie zapomnij o Timeout)

albo wróć do poprzedniej koncepcji:
screen.png
EDIT:
nie przejmuj się tymi referencjami, LV2009 przy robieniu zrzutów ekranu generuje takie kwiatki
tak na przyszłość podawaj wersję LV z której korzystasz. Pozwoli to zapisywać przykłady dla Ciebie w odpowiedniej wersji. Nie podałeś wersji = przerysowuj sobie ze screena :P
ObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj

santiago
Posty: 65
Rejestracja: 31 maja 2007 00:00

Re: zamykanie programu EXE

Post autor: santiago » 04 maja 2010 19:10

OK! Ze strukturą Event - w pętli działa, ale niestety nie tak jak tego oczekiwałem. A mianowicie po utworzeniu pliku EXE, aby zamknąć program muszę dwa razy kliknąć na "X". Gdy klikam raz program po prostu się zatrzymuje, przy drugim kliknięciu zamyka się. Jak zrobić, żeby całość załatwić jednym kliknięciem????

Awatar użytkownika
coolfon
Posty: 232
Rejestracja: 01 gru 2007 08:59
Wersja środowiska: LabVIEW 2009
Kontakt:

zamykanie programu EXE

Post autor: coolfon » 04 maja 2010 19:21

A dałeś metodę (Invoke Node) FP.Close na końcu? Wrzuć swój VI (plik, nie obrazek).

santiago
Posty: 65
Rejestracja: 31 maja 2007 00:00

Re: zamykanie programu EXE

Post autor: santiago » 04 maja 2010 19:36

W załączniku plik :)
LabView wersja 8.5
Załączniki
przyklad3.vi
(20.06 KiB) Pobrany 237 razy
Ostatnio zmieniony 04 maja 2010 20:00 przez santiago, łącznie zmieniany 1 raz.

Awatar użytkownika
Pitol
Moderator
Posty: 924
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków
Has thanked: 2 times
Been thanked: 8 times

zamykanie programu EXE

Post autor: Pitol » 04 maja 2010 19:53

spójrz na to co w pierwszej odpowiedzi Ci podesłałem. Tak jak coolfon napisał -> Metodę FP.Close należy zapiąć po wykonaniu wszystkich czynności.
ObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj

Awatar użytkownika
coolfon
Posty: 232
Rejestracja: 01 gru 2007 08:59
Wersja środowiska: LabVIEW 2009
Kontakt:

Re: zamykanie programu EXE

Post autor: coolfon » 04 maja 2010 19:55

No to przecież pytałem przed chwilą...
coolfon pisze:A dałeś metodę (Invoke Node) FP.Close na końcu?
Pitol już w pierwszym swoim poście Ci pokazał jak to zrobić. Przecież coś ten Front Panel musi zamknąć. FP.Close => Front Panel Close.

Awatar użytkownika
Pitol
Moderator
Posty: 924
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków
Has thanked: 2 times
Been thanked: 8 times

Re: zamykanie programu EXE

Post autor: Pitol » 04 maja 2010 20:04

Jakbyś nie wiedział jak dorwać się do FP.Close to tutaj masz mapę:
Paleta Application Control -> Invoke Node, potem prawym na nią i:
VI.PNG
a potem:
FP.PNG
ObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj

santiago
Posty: 65
Rejestracja: 31 maja 2007 00:00

Re: zamykanie programu EXE

Post autor: santiago » 04 maja 2010 20:19

Czytasz w myślach :) bo nie wiedziałem jak to zrobić...
Serdecznie dziękuję za pomoc!!!

ODPOWIEDZ