Ponowne uruchomienie programu

Ponowne uruchomienie programu
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
WinExec('project1.exe', SW_SHOW);

Dają tą funkcję w zdarzeniu Close Form1 ale program ponownie nie startuje. Dlaczego?

dkacperczyk
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Radom, Polska
  • Postów: 116
0

Pokaż kod.

  • Rejestracja: dni
  • Ostatnio: dni
0

Dziwne, bo u mnie dziala. Nie dziala tylko kiedy uruchamiasz z pod Delphi. A moze nazwa pliku exe nie jest poprawna?

dkacperczyk
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Radom, Polska
  • Postów: 116
0

U mnie działa i spod poziomu Delphi i po zwykłym uruchomieniu aplikacji. Pokaż ten kod.

  • Rejestracja: dni
  • Ostatnio: dni
0

Działa, działa. Jednak sprawa się komplikuje, bo mam kod, który uniemożliwia mi uruchomienie ponownie mojego programu.

Kopiuj
initialization
 hnd := CreateMutex(nil, True, 'project1');
  if GetLastError = ERROR_ALREADY_EXISTS then Halt;
  finalization
  if hnd <> 0 then CloseHandle(hnd);

Jak zrobić że po wywołaniu Close powyższy kod nie był brany pod uwagę?

AD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 206
0

Hmm ten kod trzeba zrobić
//
//
:)

A tak poważnie to myślę że musisz zrobić jakiś dodatkowy warunek podczas startu wrzucać jakąś zmienną do pamięci (wskaźniki) lub tworzyć jakiś plik i sprawdzać czy istnieje. Wówczas w trakcie pracy programu kolejny raz się nie uruchomi a podczas zamykania będzie kasował tą zmienną lub ten plik, ewentualnie wymyśliłem że mógłby to być wpis do rejestru np program pracuje 1, a po zakończeniu kasowanie wpisu lub wstawianie wartości 0.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.