knuto Skrevet 27. august 2005 Del Skrevet 27. august 2005 Hallo! Eg har laga eit lite "eingongsprogram", og lurar på korleis eg kan få windows til å slette .exe-fila når ho har køyrt ferdig. Det må jo være teknisk mogleg, ellers ville det jo ikkje gått ann å lage avinstalleringsprogram ... Lenke til kommentar
Flexo Skrevet 27. august 2005 Del Skrevet 27. august 2005 Ved avinstalleringsprogram tror jeg programmet får hjelp av noe som heter "windows installer" til å fjerne det helt... Rett meg visst det er feil! Lenke til kommentar
Manfred Skrevet 27. august 2005 Del Skrevet 27. august 2005 du kan ikke slette exe-filen til en kjørende prosess. enkelt og greit. Avinstalleringsprogrammer er en helt annen sak. Lenke til kommentar
Flexo Skrevet 27. august 2005 Del Skrevet 27. august 2005 (endret) du kan ikke slette exe-filen til en kjørende prosess. enkelt og greit. Avinstalleringsprogrammer er en helt annen sak. Han sa "etter den har kjørt ferdig"! Edit: Visst det er prat om et eget program skrevet i C foreksempel: printf("Jeg er en noob"); Vil dette programmet terminere seg selv dersom ma ikke legger inn en pausekommando. Endret 27. august 2005 av ^FeKtus Lenke til kommentar
Manfred Skrevet 27. august 2005 Del Skrevet 27. august 2005 jeg svarte på om den kunne slette seg selv. leste kanskje litt feil. Uansett må en avinstallasjon kjøres etterpå da. (tror du sliter med å gjøre dette automatisk, da selve exe-filen må starte denne, og blir da fortsatt kjørende selv i bakgrunnen). Skal du avinstallere, må du også ha en installasjon først. Lenke til kommentar
Giddion Skrevet 27. august 2005 Del Skrevet 27. august 2005 hmm... bra spørsmål så jeg prøvde meg litt ut. la oss si at du bruker en bat fil istede, den har muligheten til å slette seg selv. 1 Jeg starter Uninstall programmet. 2 programmet fjerner alt av reg. filer. mapper osv. alt utenom programmet selv og mappene som det ligger i. 3 programmer genererer en bat fil med en delay på fks 10 sek. som blir lagt på et sted som ikke kommer i komflikt med fjerningen (fks c:\). 4 programmet dealokerer alt av minne handlere osv. , så rett før programmer slutter starter det bat filen som et separat program så avsluttes uninstallen. 5 bat filen kjører å sletter alle spor. Jeg mener å huske at proffene lager et skript som kjøres i av en windows kommando/API kall, men jeg husker ikke hvilke. Lenke til kommentar
Flexo Skrevet 27. august 2005 Del Skrevet 27. august 2005 Bra svar Giddion, tenkte ikke på .bat fil! Lenke til kommentar
knuto Skrevet 27. august 2005 Forfatter Del Skrevet 27. august 2005 Det trikset høyrdest kupp ut! Takk! Skal teste det litt seinare Lenke til kommentar
JBlack Skrevet 27. august 2005 Del Skrevet 27. august 2005 Hvem sletter .bat fila? Lenke til kommentar
charlie di meola Skrevet 27. august 2005 Del Skrevet 27. august 2005 del %0 (evt. del %0.bat) skulle funke fint i en batfil Lenke til kommentar
kjetil7 Skrevet 27. august 2005 Del Skrevet 27. august 2005 Alternativ til bat-fil er å bruke MoveFileEx med MOVEFILE_DELAY_UNTIL_REBOOT. Prototype: BOOL MoveFileEx( LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName, DWORD dwFlags ); Eks: MoveFileEx(_T("c:\\self.exe"), 0, MOVEFILE_DELAY_UNTIL_REBOOT); Filen blir da slettet ved neste reboot - og du slipper unna med kun en kodelinje Lenke til kommentar
☀ ❄ Skrevet 27. august 2005 Del Skrevet 27. august 2005 lstor@mputt:~$ cp /bin/rm .lstor@mputt:~$ ./rm ./rm lstor@mputt:~$ ls rm ls: rm: Ingen slik fil eller filkatalog Norsk: 1) Kopier slette-programmet til nåværende mappe 2) Slett slette-programmet i nåværende mappe med sletteprogrammet i nåværende mappe 3) Vis at slette-programmet i nåværende mappe ikke eksisterer Delvis off-topic, men uansett: Tråden burde befinne seg i Programmering->Windows. Så lenge tråden opprettes i et plattformuavhengig forum får dere tåle at jeg poengterer andre løsninger på andre plattformer Lenke til kommentar
charlie di meola Skrevet 28. august 2005 Del Skrevet 28. august 2005 nemmen myubi da, er ikke c/c++ engang det du foreslo int main(int argc, char **argv) { if(!unlink(argv[0])) printf("%s er bortevekk\n",argv[0]); else printf(":(\n"); return 0; } u@w:~/waa$ ls -la total 28 drwxr-xr-x 2 user users 4096 Aug 28 05:51 ./ drwx--x--x 23 user users 4096 Aug 28 05:41 ../ -rwxr-xr-x 1 user users 13388 Aug 28 05:51 delself* -rw-r--r-- 1 user users 130 Aug 28 05:51 delself.c u@w:~/waa$ delself delself er bortevekk u@w:~/waa$ ls -la total 12 drwxr-xr-x 2 user users 4096 Aug 28 05:52 ./ drwx--x--x 23 user users 4096 Aug 28 05:41 ../ -rw-r--r-- 1 user users 130 Aug 28 05:51 delself.c u@w:~/waa$ Lenke til kommentar
knuto Skrevet 28. august 2005 Forfatter Del Skrevet 28. august 2005 (endret) Er heilt inni granskogen tåpeleg å skrive at det ikkje høyrer til i dette forumet. Windows-forumet handlar ikkje om C++, så om eg hadde fått svar hadde det garantert berre vore: "Prøv i C++-forumet, du.". Det som heller ville vore aktuelt var å endre tittelen til "[Windows] Korleis slette den køyrande fila". Korleis lagar ein forresten ein delay i bat? Nokon som veit om ein tutorial til .bat-filer? Redigert: Trudde dette skulle fungere, noko det ikkje gjer: ofstream out("dkh.bat"); out << ":: Denne fila er heilt midlertidig, og vil forsvinne automatisk.\n" "echo off\n" "ping -n 5 localhost > nul\n" "del kh.exe\n" "del dkh.bat"; system("dkh.bat"); Endret 28. august 2005 av knuto Lenke til kommentar
charlie di meola Skrevet 28. august 2005 Del Skrevet 28. august 2005 (endret) FILE *f = fopen("temp.bat","w"); fputs("@echo off & ping a.b.c.d -n 5\n",f); fputs("del filen-din.exe & del temp.bat & exit", f); fclose(f); system("start temp.bat"); Endret 28. august 2005 av charlie di meola Lenke til kommentar
knuto Skrevet 28. august 2005 Forfatter Del Skrevet 28. august 2005 (endret) Redigert: Virker som dette er teknisk umuleg. (har testa på 2 datamaskinar med Win XP Pro). Det viser seg bat-fil klarer ikkje å slette seg sjølv om ho er starta av ein annan prosess, men om ho blir starta manuelt går det fint. Eg fatter ikkje kvifor, for det virker ikkje svært logisk, men noko seier meg at det er eit sikkerheitspåfunn frå Microsoft. Endret 28. august 2005 av knuto Lenke til kommentar
charlie di meola Skrevet 28. august 2005 Del Skrevet 28. august 2005 ^^ funka bra i win2k (men det er uansett jalla). google fant noe du kan prøve Lenke til kommentar
☀ ❄ Skrevet 28. august 2005 Del Skrevet 28. august 2005 nemmen myubi da, er ikke c/c++ engang det du foreslo Å finne opp hjulet på nytt for en så liten demonstrasjon var overkill, synes jeg knuto: Dette kan vi vel heller ta i pm. Av nysgjerrighet, hvorfor vil ikke Windows slette en kjørende fil? Av "sikkerhetsårsaker"? Lenke til kommentar
knuto Skrevet 28. august 2005 Forfatter Del Skrevet 28. august 2005 knuto: Dette kan vi vel heller ta i pm. Det var du som begynte... Lenke til kommentar
A_N_K Skrevet 28. august 2005 Del Skrevet 28. august 2005 Det var da også noe å krangle om Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå