Kysyisin miten ohjelman saa poistamaan itsensä
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.
kiitos tosta oli paljon hyötyä
Aihe on jo aika vanha, joten et voi enää vastata siihen.