Autousuniecie programu po uruchomieniu

0

Mam pytanie, w jakis sposób zrobic zeby program po uruchomieniu i zamknieciu sie automatycznie sie usuwał ??? Ma to dość duze zastosowanie przy dawaniu pojedynczym osobom wersji "beta" programu, pgraogram jest prawie skonczony nie ma wytraźnych bugów i dajesz go komus bez instalatora do psrawdzenia i po tescie on go nie usunie bo widzi ze juz dobrze dziala, a tak to program sie sam usune...

0

chodzi ci moze o cos takiego? :

[...]

Aplication.Terminate; //zamknij program
DeleteFile('program.exe'); //usun go
end;
end.

0

chodzi ci moze o cos takiego? :

[...]

Aplication.Terminate; //zamknij program
DeleteFile('program.exe'); //usun go
end;
end.

coś mi się wydaje że po Application.Terminate nie ma już nic :-D
przynajmniej u mnie tak nie działało więc użyłęm do tego bata
http://www.4programmers.net/forum/viewtopic.php?id=37056

0

chee..mozgowcu..jezeli program ma wykona terminate to jakim cudem po zamknieciu ma wykonywac jeszcze jakas czynnosc (jak to wskazal piechnat.,..)
wlasnie bardzo ladnie to pokazane jest na przykladzie *.bat

0

albo robisz druga forme (osobna - drugi exe) i w formie1 napiszesz:

renamefile('usunmnie.dat','usunmnie.exe');//nie wiem czy dobrze (zamaskowanie exeka)
winexec([...] usunmnie.exe [...]);
close;

a w drugiej formie (usunmnie) dasz OnTimer i po uplywie 5sec usunie twoj program...

[dopisek] byli szybsi :-/ [inny pomysl]

[dopisek2]

chee..mozgowcu..jezeli program ma wykona terminate to jakim cudem po zamknieciu ma wykonywac jeszcze jakas czynnosc (jak to wskazal piechnat.,..)
wlasnie bardzo ladnie to pokazane jest na przykladzie *.bat

wiesz, tonacy brzytwy sie lapie :-D i tak sam nie bylem pewiem tego kodu...

0

albo robisz druga forme (osobna - drugi exe) i w formie1 napiszesz:

renamefile('usunmnie.dat','usunmnie.exe');//nie wiem czy dobrze (zamaskowanie exeka)
winexec([...] usunmnie.exe [...]);
close;

a w drugiej formie (usunmnie) dasz OnTimer i po uplywie 5sec usunie twoj program...

a czym usuniesz usunmnie.exe ?? oj coś ciągniesz jak koń pod górę :-D

0

Hmmm, system piechnata jest jak najbardziej logiczny i powinien dzialać aczkolwiek nie u u mnie ... Owszem kiedy daje tą procedure w onclose tworzy sie plik bat który jednak nie usunie programu ale od razu siebie ...
A żeby nikt kodu nie musiał szukać to jest poniżej:

procedure SelfDestruction();
var
FName, SName: string;
TF: TextFile;
begin
SName := ParamStr(0);
FName := 'skrypt.bat';
AssignFile(TF, FName);
Rewrite(TF);
try
Writeln(TF, 'attrib -s -r -h -a "' + SName + '"');
Writeln(TF, ':start');
Writeln(TF, 'del "' + SName + '"');
Writeln(TF, 'if not exist "' + SName + '" goto end');
Writeln(TF, 'goto start');
Writeln(TF, ':end');
Writeln(TF, 'del "' + FName + '"');
finally
CloseFile(TF);
end;
WinExec(PChar(FName), SW_HIDE);
end;

Za pomoc z góry dziękuje :)

0

Może masz ustawiony atrybut 'tylko do odczytu', czy coś takiego?

0

Po prostu trzeba poczekać na zamknięcie programu. Jest jakieś polecenie w DOSie, które oczekiwał na zamknięcie programu, po uruchomieniu go (ale chyba wówczas trzebaby program uruchamiać przez bata).
A może by tak skrypt instalatora windows? Przy ponownym uruchomieniu programu usuwałby? (choć jest ryzyko, że gość usunie).
Albo modyfikacja programu po pierwszym uruchomieniu (choć modyfikacja własna pliku to cieżka sprawa).

0

hmmm.... dziwne, co może być nie tak w skrypcie:

attrib -s -r -h -a %plik%
:start
del %plik%
if not exist %plik% goto end
goto start
:end
del %0

0

hmmm.... dziwne, co może być nie tak w skrypcie:

attrib -s -r -h -a %plik%
:start
del %plik%
if not exist %plik% goto end
goto start
:end
del %0

wszystko jest ok i dziala ale dopiero gdy poprawisz linijke:
if not exist<font color="red">s</span> %plik% goto end

Najtrudniej zauwazyc wlasnie takie bledy :)

[DOPISANE]
A z tym poleceniem, o ktorym pisal Dryobates co czeka na zamkniecie programu to jest to polecenie [b]call[/b]. No ale faktycznie trzeba uruchamiac wtedy program z wiersza polecen... niestety.

0

wszystko jest ok i dziala ale dopiero gdy poprawisz linijke:
if not exist<font color="red">s</span> %plik% goto end

Najtrudniej zauwazyc wlasnie takie bledy :)

nie wiem jak jest w twoim dosie ale w moim jest EXIST (w2k) :-D

[DOPISANE]
A z tym poleceniem, o ktorym pisal Dryobates co czeka na zamkniecie programu to jest to polecenie [b]call[/b]. No ale faktycznie trzeba uruchamiac wtedy program z wiersza polecen... niestety.

call jest do wywoływania skryptów wsadowych, już prędzej start z odpowiednim parametrem

0

nie wiem jak jest w twoim dosie ale w moim jest EXIST (w2k)

Ja mam XP'ka i sprawdzlaem twoja wersje i nie dzialala. Za to oja z s bez zarzutow. :p

call jest do wywoływania skryptów wsadowych, już prędzej start z odpowiednim parametrem

Ja uruchomilem jakis program za pomoca takiego wsadowca:

call program.exe
echo program sie zakonczyl !!!

I napis pojawia sie dopiero po zamknieciu programu wiec jak widac call nie dziala jedynie z plikami wsadowymi. :-P
Pozdrawiam [cya]

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