uruchamianie aplikacji w czasie zamykanie innej

uruchamianie aplikacji w czasie zamykanie innej
IS
  • Rejestracja: dni
  • Ostatnio: dni
0

Sie macie.
Mam pytanko: jak podczas zamykania mojego programu włączyć go z powrotem? Użytkownik wyłącza moj program, zamyka się, ale zanim to zrobi uruchamia sam siebie? Próbowałem dać taki kod do OnDestroy:

ShellExecute(0 , 'open' , PAnsiChar(ExtractFilePath(Application.ExeName) + '\mojprogs.exe') , nil , nil , SW_SHOW) ;

ale nie działa, jeżeli użytkownik zabija proces mojego progsu. Jak zrobić, żeby zawsze uruchamiał się ponownie? Thx

TH
  • Rejestracja: dni
  • Ostatnio: dni
0

Po pierwsze:

ShellExecute(0 , 'open' , PChar(Application.ExeName) , nil , nil , SW_SHOW) ;

bo po co wydłużać kod i na dodatek sprawiać, ze nie będzie on działał po zmianie nazwy execa?

Po drugie:
Przy zybiciu procesu nie jest wysyłana do niego żadna informacja. Musiałbyś mieć drugi program uruchomiony w tle, który by sprawdzał, czy tamten działa, ale ta metoda oczywiście nie jest pewna i jest trochę "pokrętna".

Po trzecie:
Trojanik? ;-)

IS
  • Rejestracja: dni
  • Ostatnio: dni
0

po pierwsze:
no racja, racja

po drugie:
Dzięki. A może ktoś ma jeszcze jakieś inne pomysły?

po trzecie:
nichichichi :-D nie, nie trojan, powiedzmy, że hmmm...po prostu potrzebuje napisać programik, który nie bardzo lubi, kiedy nie jest uruchomiony :-). Nic złego nie mam na myśli, słowo :-)

TH
  • Rejestracja: dni
  • Ostatnio: dni
0

Właściwie, to jest na to dość dobry sposób. Możesz przechwytywać wszystkie wywołania TerminateProcess() za pomocą jakiejś biblioteki, jak np. ApiHooks. Sprawdzasz, czy parametrem jest proces twojego programu jeśli nie, wywolujesz prawdziwe TerminateProcess.

IS
  • Rejestracja: dni
  • Ostatnio: dni
0

Dzięki, sprawdzę to. THX [browar]

TO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 290
0

Daj to w OnClose:

Kopiuj
Application.Initialize;
Application.CreateForm(TForm1, Form1);// tu dajesz wszystkie formy, jakie masz w projekcie
Application.Run;

Tani chwyt, ale działa;)

WA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 501
0

tomksoft, nie doczytales - mialo byc przy kilowaniu procesu, kiedy to zadne komunikaty nie ida (znaczy nie da sie w nich zareagowac...)

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.