Rezolvarea problemelor cum ar fi programul în sine pentru a se elimina sau cum să schimbe numele fișierului executabil -

În timpul navigării pe Internet pe forumurile de programare, am intrat în întrebări legate de întrebarea "Cum se face eliminarea sau redenumirea programului în timpul execuției". Acest articol descrie modul cel mai elementar.

Borland Delphi de preferință 7 - necesită instalare
Notepad (notepad.exe) - se află pe toate computerele cu Windows
cmd.exe - costă pe toate computerele cu Windows

De ce avem nevoie de un notebook și cmd.exe pe care îl întrebați?
Vom folosi fișierul Batch pentru a rezolva această problemă, mai detaliat: pe Wikipedia
Funcție pentru eliminarea:

funcția RemoveApp. boolean;

batfile. textfile; // fișier variabil

încercați // încercați .. excepție blocul pentru a gestiona excepțiile (erorile)

RemoveApp: = true; // pune valoarea în rezultatul funcției returnate: true

AssignFile (batfile, 'Del.bat'); // atribuiți fișierul variabil

Rewrite (batfile); // Deschis pentru suprascriere (dacă există un fișier suprascrie, altfel va fi creat)

ChDir (ExtractFilePath (ParamStr (0))); // modificați directorul curent (cu care rulează programul) în directorul în care se află fișierul executabil

WriteLn (batfile, 'del' + ExtractFileName (ParamStr (0))); // scrie în comanda de ștergere a fișierului del

WriteLn (batfile, 'del Del.bat'); // scrieți acest lucru pentru auto-distrugerea fișierului lot

CloseFile (batfile); // închideți fișierul

WinExec ("Del.bat", SW_SHOW); // rulați fișierul batch creat de program

ExitProcess (0); // închideți programul

RemoveApp: = false; // dacă apare eroare return false

Funcție pentru redenumire:

funcția RenameApp (nume nou, șir). boolean;

batfile. textfile; // fișier variabil

încercați // încercați .. excepție blocul pentru a gestiona excepțiile (erorile)

RenameApp: = adevărat; // pune valoarea în rezultatul funcției returnate: true

AssignFile (batfile, 'Rem.bat'); // atribuiți fișierul variabil

Rewrite (batfile); // Deschis pentru suprascriere (dacă există un fișier suprascrie, altfel va fi creat)

ChDir (ExtractFilePath (ParamStr (0))); // modificați directorul curent (cu care rulează programul) în directorul în care se află fișierul executabil

WriteLn (batfile, 'ren' + ExtractFileName (ParamStr (0)) + '' + nume nou); / / scrieți în fișier ren rename

WriteLn (batfile, 'del Rem.bat'); // scrieți acest lucru pentru auto-distrugerea fișierului lot

CloseFile (batfile); // închideți fișierul

WinExec ("Rem.bat", SW_SHOW); // rulați fișierul batch creat de program

ExitProcess (0); // închideți programul

RenameApp: = false; // dacă apare eroare return false

După cum puteți vedea, nu este nimic complicat aici. Aceste funcții nu necesită module suplimentare.