Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++ miten ohjelman saa poistamaan itsensä

hyyppä [06.11.2005 15:55:49]

#

Kysyisin miten ohjelman saa poistamaan itsensä

Metabolix [06.11.2005 17:05:57]

#

No Windowsissa ainakaan ei voi kesken suorituksen itseään poistaa. Lähinnä luomalla toisen prosessin, joka poistaa ohjelman, kun se sulkeutuu, tai sitten lisäämällä koneen käynnistystoimintoihin poiston. Jos "ajoitetut tehtävät" ovat käytössä, niin voi tietysti sellaisen kehitellä.

Tällaisen sain toimimaan:

#include <stdlib.h>
#include <stdio.h>
#include <windows.h>

char batinnimi[10] = "koe.bat";

void Tuhoa(void);

int main(int argc, char **argv)
{
    /* Luodaan bat-tiedosto:
    del C:\kansio\projektinnimi.exe
    del bat-tiedosto.bat
    */
    FILE * bat = fopen(batinnimi, "w");

    /* MS-järjestelmissä 1. parametri on ohjelman polku */
    fprintf(bat, "del %s\n", argv[0]);
    fprintf(bat, "del %s\n", batinnimi);
    fclose(bat);

    /* Käsketään ohjelman lopuksi suorittaa Tuhoa-funktio */
    atexit(Tuhoa);

    return 0;
}

void Tuhoa(void)
{
    /* Suoritetaan kyseinen bat */
    ShellExecute(0, 0, batinnimi, 0, 0, SW_HIDE);
}

Linuxista en tiedä, mutta siinä voi olla jopa helpompaa.

hyyppä [14.11.2005 18:34:18]

#

kiitos tosta oli paljon hyötyä

Masfonos [15.11.2005 00:03:23]

#

http://www.catch22.net/tuts/selfdel.asp

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta