zamykanie programu EXE
zamykanie programu EXE
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!!
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!!
- Pitol
- Moderator
- Posty: 984
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
zamykanie programu EXE
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)
Re: zamykanie programu EXE
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!!
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 584 razy
- Pitol
- Moderator
- Posty: 984
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Re: zamykanie programu EXE
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.
Re: zamykanie programu EXE
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.santiago pisze: Również i pętla nie działa nie wiedzieć czemu
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.
Re: zamykanie programu EXE
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!!
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 610 razy
- Pitol
- Moderator
- Posty: 984
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Re: zamykanie programu EXE
teraz to przesadziłeś
wsadź strukturę Event do pętli While z powrotem to będzie działać (nie zapomnij o Timeout)
albo wróć do poprzedniej koncepcji: 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
wsadź strukturę Event do pętli While z powrotem to będzie działać (nie zapomnij o Timeout)
albo wróć do poprzedniej koncepcji: 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
Re: zamykanie programu EXE
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????
zamykanie programu EXE
A dałeś metodę (Invoke Node) FP.Close na końcu? Wrzuć swój VI (plik, nie obrazek).
Re: zamykanie programu EXE
W załączniku plik
LabView wersja 8.5
LabView wersja 8.5
- Załączniki
-
- przyklad3.vi
- (20.06 KiB) Pobrany 631 razy
Ostatnio zmieniony 04 maja 2010 20:00 przez santiago, łącznie zmieniany 1 raz.
- Pitol
- Moderator
- Posty: 984
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
zamykanie programu EXE
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.
Re: zamykanie programu EXE
No to przecież pytałem przed chwilą...
Pitol już w pierwszym swoim poście Ci pokazał jak to zrobić. Przecież coś ten Front Panel musi zamknąć. FP.Close => Front Panel Close.coolfon pisze:A dałeś metodę (Invoke Node) FP.Close na końcu?
- Pitol
- Moderator
- Posty: 984
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Re: zamykanie programu EXE
Jakbyś nie wiedział jak dorwać się do FP.Close to tutaj masz mapę:
Paleta Application Control -> Invoke Node, potem prawym na nią i: a potem:
Paleta Application Control -> Invoke Node, potem prawym na nią i: a potem:
Re: zamykanie programu EXE
Czytasz w myślach bo nie wiedziałem jak to zrobić...
Serdecznie dziękuję za pomoc!!!
Serdecznie dziękuję za pomoc!!!