[ Srki_82 @ 19.11.2004. 20:44 ] @
Napravio sam neki mali uninstall program koji skida jedan moj mali programcic sa racunara, ali kad se uninstall zavrsi sa brisanjem programcica ne moze sam sebe da izbrise jer windows to ne dozvoljava (fajl uninstall.exe je verovatno jos otvoren ili tako nesto). To sam resavao tako sto ubacim u wininit.ini da promeni ime uninstall.exe-u u NULL i windows ga prilikom sledeceg pokretanja obrise. Sve to lepo radi, ali ja bih ipak da nekako uninstall obrise sam sebe. Da li je moguce da se ceo program ucita u memoriju (nije previse velik) pa da windows zatvori taj exe fajl i da ga je pose toga moguce izbrisati, a da program i dalje radi posto je u memoriji?
[ blaza @ 19.11.2004. 22:50 ] @
http://www.codeproject.com/file/cpselfdestruct2.asp
[ Srki_82 @ 19.11.2004. 23:32 ] @
Hvala... nikad mi ne bi palo na pamet da koristim .bat :) Sa tim sam se oprostio kad sam iz DOS-a presao na Win. Ovo ce biti sasvim dovoljno za mene, ali me i dalje kopka... da li je moguce napraviti neki exe fajl koji ce se 100% prebaciti u memoriju i da vise fajl na harddisku ne bude potreban?
[ Sundance @ 22.11.2004. 05:25 ] @
Citat:
Srki_82: Hvala... nikad mi ne bi palo na pamet da koristim .bat :) Sa tim sam se oprostio kad sam iz DOS-a presao na Win. Ovo ce biti sasvim dovoljno za mene, ali me i dalje kopka... da li je moguce napraviti neki exe fajl koji ce se 100% prebaciti u memoriju i da vise fajl na harddisku ne bude potreban?


Moguce je, ali zahtijeva vrlo ruzne nacine uhakiranja NT loadera. Fora je u tome da, nakon sto korisnik klikne na neki .exe, kad ga pokusa rucno izbrisati dobit ce poruku o zabrani jer je proces koji je sa njim asociran jos uvijek aktivan. Postoji nacin za natjerati na win9x familiji da kernel "otpusti" handle od doticnog .exe-a za koji znam da 100% radi, a mislim da sam negdje nacuo da je pod NT familijom potrebno pozvati UnmapViewOfFile() na vlastiti imagebase. Probaj, mozda upali. Ako ne, jebga :)

Mislim, uvijek mozes dodati u startup kljuceve u registry (u one koje se pokrecu samo jednom) string oblika cmd.exe /c DEL /F <PATH DO DIREKTORIJA KOJEG ZELIS IZBRISATI>
[ Srki_82 @ 22.11.2004. 17:32 ] @
Vidim da cu se ipak zadrzati na .bat fajlicu koji ce sve da baci u rupu bez dna :)