Newsgroup: it.comp.lang.visual-basic
Titolo: Cancellazione automatica di file

Devo creare un file in Visual Basic 5.0 che una volta eseguito si cancelli
da solo. Probabilmente la mia domanda č stupida (in tal caso chiedo scusa)
poichč personalmente non credo sia possibile fare una cosa del genere.
Comunque esiste un comando da inserire nel programma che faccia ciň che ho
detto? So che per cancellare un file si usa l'istruzione KILL ma in questo
caso non so come applicarla.
Vi ringrazio per eventuali risposte.
Andrea

 ha scritto nel messaggio
nvYM5.18344$fx4.6...@news.infostrada.it...
| Devo creare un file in Visual Basic 5.0 che una volta eseguito si cancelli
| da solo. Probabilmente la mia domanda è stupida (in tal caso chiedo scusa)
| poichè personalmente non credo sia possibile fare una cosa del genere.
| Comunque esiste un comando da inserire nel programma che faccia ciò che ho
| detto? So che per cancellare un file si usa l'istruzione KILL ma in questo
| caso non so come applicarla.
| Vi ringrazio per eventuali risposte.
Kill serve ad eliminare un file, ma non è possibile autoeliminarsi in questo
modo, in quanto il file si blocca quando lo esegui... per autoeliminarti
devi avere il supporto di un file batch che cancelli il tuo programma e poi
si cancelli da solo (ibatch possono).

 ha scritto nel messaggio
news:8u1pvp$ddh$1...@nslave3.tin.it...

Grazie 1000 per avermi chiarito le idee. A questo punto vorrei chiedere come
è possibile abbinare il file batch con quello fatto in Visual Basic, in modo
tale da poter compiere l'operazione desiderata. É molto importante, quindi
prego chiunque sappia come fare a darmi una risposta.
Grazie
Andrea

| Grazie 1000 per avermi chiarito le idee. A questo punto vorrei chiedere
come
| è possibile abbinare il file batch con quello fatto in Visual Basic, in
modo
| tale da poter compiere l'operazione desiderata. É molto importante, quindi
| prego chiunque sappia come fare a darmi una risposta.
Se vuoi farlo in maniera elegante dovresti crearti il file a run time, per
fare questo devi usare questo codice:
-----------------------
dim intFree as integer
intFree = FreeFile
if Dir(App.Path & "\cancella.bat") <> "" Then kill App.Path &
"\cancella.bat" 'se il file
'esiste già lo cancella
Open App.Path & "\cancella.bat" For Binary Access Write As intFree
Put intFree, , CStr("@echo off" & vbcrlf)
'........ non so cosa ci devi mettere qua!
Close intFree
Shell App.Path & "\cancella.bat"
Unload Me
-----------------------

 Unload Me
e qui sorge un problema: lanciando la shell cosi', l'exe e' ancora attivo e
siamo da capo. c'e' un modo per lanciare il bat con delay in modo che sia
eseguito a exe scaricato ?

 eseguito a exe scaricato ?
nel bat creato:
    :locked
    del nomeprog.exe > nul
    if exist nomeprog.exe goto :locked
    [...]
--
ciao
xAERO

     if exist nomeprog.exe goto :locked
hai fatto una prova ?
mentre e' in questo loop riesce a fare l'unload ?

| ' visto che un .bat e' un txt, io farei piu' semplicemente
|     Open App.Path & "\cancella.bat" For output As intFree
|     print #intfree, "@echo off"
|     print #intfree, "del " & app.path & "\tuofile.exe"
| 'tenendo presente che se app.path = root
| ' dara' errore x' trovera' 2 backslashes
Si, č vero, ma ormai mi sono fissato col binary...
| e qui sorge un problema: lanciando la shell cosi', l'exe e' ancora attivo
e
| siamo da capo. c'e' un modo per lanciare il bat con delay in modo che sia
| eseguito a exe scaricato ?
Infatti io pensavo ci fosse un modo per eseguire una pausa nel bat, ma non
avendolo mai usato (a parte autoexec)...confidavo nella vostra sapienza :)

 avendolo mai usato (a parte autoexec)...confidavo nella vostra sapienza :)
Choice /Ts, 5 ti dà la possibilità di usare una pausa di 5 secondi in un batch,
per esempio.
Comunque un metodo "pulito" è quello di usare il wininit.ini.
Per chi non lo conoscesse, è un fle nella dir di windows, che viene interpretato
ad ogni avvio, prima che parta windows, e si usa proprio per le (de)installazioni,
per far rimuovere automaticamente al boot dei file che altrimenti sarebbero
"in uso" sotto windows.
Prova ad aprire il tuo wininit.bak e ci troverai il nome dell'ultimo file disinstallato.
Un piccolo esempio: mettendo questo testo nel file,
______________________
[rename]
NUL=C:\PROGRA~1\NETWOR~1\MCAFEE~1\SCAN.DAT
______________________
al riavvio il file specificato verrà cancellato (per la precisione rinominato
in NUL, il che è equivale a buttarlo in un buco nero...)
Attenzione, tutti i nomi di file devono essere in formato Dos 8.3.
Per maggiori informazioni, e per la versione NT:
Q140570 HOWTO: Move Files That Are Currently in Use
http://support.microsoft.com/support/kb/articles/Q140/5/70.asp
Bye, G.
--
---------------------------------------------
    Le risposte alle tue domande le trovi
    sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
       ... e nell'help in linea !
---------------------------------------------
Real E-address: 
gaet...@hotmail.com

 
http://support.microsoft.com/support/kb/articles/Q140/5/70.asp
credo che questa soluzione vada bene soloper win9x, non per NT
--
ciao
xAERO

 > 
http://support.microsoft.com/support/kb/articles/Q140/5/70.asp
Un Paperino, passa da qui, che ci prendiamo un caffè insieme... :-))

Salve
Io credo che le applicazioni usino un file (es. delete.exe) che viene
copiato e lasciato nella cartella di sistema, e a questo file viene delegato
il compito di cancellare i file.
Insomma il trucco sta nell'usare un file all'esterno dell'applicazione
(IsUninst.exe si trova in \windodows\ ed e' parte di InstalledShield.
Salve
                    Dbg
Paperino ha scritto nel messaggio





 della cazzata che ho sparato...........
se ti risponde pal-do va bene lo stesso ?
:)

 :)
Ho toppato alla grande !
Pensavo fosse il buon Hal, ma va bene lo stesso, tanto siamo fra amici.
(Cosě di cazzate ne ho sparate due !)
Ciao
Sergio

 wrote in message
news:8u4l0s$k2e$1...@fe1.cs.interbusiness.it...

Chi non fa non falla !
        (F. Guccini)
Ciao
Aldo

 Aldo

 (Cazzata n. 3)
secondo me l'ha detto l'iceberg.


Questa è ancora meglio (o peggio) della mia !!
Qui stasera siamo quasi in chat !
Ciao
Sergio

 Qui stasera siamo quasi in chat !
gia'.
taglierei.
ciao, a.


LOL         :-)))))))))))))))))))

Hey, abbiamo trovato del pane da mordere per Pal
^_____^
--
Fibia "Sakamoto" FBI
URL: 
www.geocities.com/fibiafbi
E-Mail: 
fibi...@hotmail.com
ICQ UIN 63586057

 ^_____^
meglio cosi'
sul ng ce n'e' gia' stati un paio
che avevano trovato pal da mordere per il cane...

 che avevano trovato pal da mordere per il cane...
Ma come fai a rispondere al ng ogni minuto?
Non appena mando qualcosa ci sei tu pronto con la
risposta.
Cmq e' una bella idea, il mio cane e' molto ansioso...


 risposta.
Non è più un newsgroup, è una chat !
Ciao
Sergio

> Non è più un newsgroup, è una chat !
Mi sa che Pal ha la *DSL


 Mi sa che Pal ha la *DSL
pal ha la dedicata (adsl, fa schifo) in ufficio da un po', e ha appena messo
isdn + wind internet no stop a casa. isdn sembra andare decisamente
meglio...
...ma pal sta pregando di non avere come al solito capito male le condizioni
contrattuali.