Î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.