Ponowne uruchomienie programu

0
WinExec('project1.exe', SW_SHOW);

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

0

Pokaż kod.

0

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

0

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

0

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

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ę?

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1