Delete self EXE in VB

9 отговора 248 прегледа
#1

Delete self EXE in VB

Pravia programa na VB6. Interesuva me kak moga da iztria sobstvenoto si EXE - t.e. programata da si iztrie EXE-to ot koeto e startirana. Probvah s Kill, ama mi dade "Path/File access error". Stava vupros za Win2000 platforma.
10x predvaritelno

Отговор
в отговор на pitanko #2

Re: Delete self EXE in VB

Ми не можеш да изтриеш собственото си EXE, поне не и от него, защото файлът все още се използва.

Можеш да направиш, както повечето деинсталатори правят - в RunOnce секцията в registry-то слагаш команда, която да го изтрие. Това ще стане при следващия рестарт на системата.

Отговор
в отговор на pitanko #3

Re: Delete self EXE in VB

#include <windows.h>

int main(int argc, char *argv[])
{
char buf[MAX_PATH];
HMODULE module;

module = GetModuleHandle(0);
GetModuleFileName(module, buf, MAX_PATH);
CloseHandle((HANDLE)4);

__asm
{
lea eax, buf
push 0
push 0
push eax
push ExitProcess
push module
push DeleteFile
push UnmapViewOfFile
ret
}

return 0;
}

[линк]

Um tzaruwa, Um robuwa, Um belia delfin
Отговор
в отговор на ironcode #4

Re: Delete self EXE in VB

Аз се чудя, ако си изгенерираш един .bat (или .cmd) файл, ако намериш начин да го синхронизираш с края на програмата, ще стане много хитро
.bat-a има хубавата способност да се изтрива сам себе си.


Я вышел им наперерез...
Отговор
в отговор на MиГ #5

Re: Delete self EXE in VB

Tva go znam, ma si misleh che ima po tarikatski nachin - v kraina smetka EXE-to e zaredeno v pametta i nishto ne mu prechi da se samoizturka ot diska, osven glupavia Windows... ta si misleh da go sluza che faila veche ne se polzva... Znam che stava nomera, ma trebe da se burka mnogo nadulboko - iz procesite na Windows-a. Ta si misleh che nekoi go znae i she mi spesti ruchkane. Mersi za akula, ako ne stane inak s .bat she e...

Отговор
в отговор на pitanko #6

Re: Delete self EXE in VB

abe pich, ti glupav li si? ne gledash li?
pogledni kakvo sum ti postnal - tam dori ima i url s objasnenie - pravish tova na edna funkcia - i ja vikash predi da izlezesh - mozhe dori sus _atexit() da ja zakachish - ili prosto kato izlizash ot tvoja main e vikash (razbira se preimenuwaj moja na main() na neshto drugo si tam)

Um tzaruwa, Um robuwa, Um belia delfin
Отговор
в отговор на malkia76 #7

Re: Delete self EXE in VB

Човека пише на бъзик. Там няма асемблер.


Я вышел им наперерез...
Отговор
в отговор на MиГ #8

Re: Delete self EXE in VB

pa mislja che visual-basica mozhe da si linkwa OBJ failove napraveni na C - ne mozhe da njama nachin - ama tree se razrovi. Az lichno na VB koeto sum pravil beshe dva zhameka i posle go zatvorih :)

Um tzaruwa, Um robuwa, Um belia delfin
Отговор
в отговор на malkia76 #9

Re: Delete self EXE in VB

Не може.


Я вышел им наперерез...
Отговор
в отговор на malkia76 #10

Re: Delete self EXE in VB

ne mi se iska da vlizam v izlishni sporove, ama dori i v zaglavieto sum pisal che stava vupros za VB... i horata za VB plashtat. inak sum se probval da zakacham na UnLoad i QueryUnload, ama ne bi.
inak za drugi ezici, che i za asm mozem da si posporim sochno. ma ne e tova celta - koito plashta, toi poruchva muzikata.

Отговор