Newsgroup: it.comp.lang.delphi
Titolo: cancellare il programma in esecuzione

ciao,
lanciando un programma di deinstallazione che ho fatto, ho incontrato un
problema nel cancellare il programma stesso di deinstallazione.
C'è il modo di farlo?
Come si comportano gli altri programmi di deinstallazione? lasciano residui
di se stessi in giro per l'hard-disk?
il programma gira su win 98, ma se ci fosse qualcosa per qualsiasi tipo di
windows non sarebbe male.
grazie per gli eventuali chiarimenti.
ciao! Giuseppe

 wrote in message
8r464k$3kf$1...@nslave1.tin.it...


 [CUT]
Ciao Giuseppe,
                            scusa il ritardo nella risposta...
Direi che estrarre un eseguibile memorizzato come risorsa in un eseguibile
sia una cosa più che fattibile. Se la memoria non mi inganna su certe cose
che ho "studiato" in passato, è possibile dato un eseguibile, caricarlo in
memoria ed eseguirlo "al volo" senza passare per un .exe...
Credo ci sia da lavorare in assembly però e questo fu uno dei motivi per cui
ho desistito, viste le tue conoscenze in materia direi che potresti avere
molta più fortuna/iniziativa di me...
In teoria il meccanismo è semplice: estrai la risorsa, la piazzi un uno
stream (TResourceStream credo sia il più comodo ma non ricordo se è
compatibile con quel che dobbiamo fare) ci apri un file mappato in memoria e
poi lo fai eseguire.
Il punto problematico è proprio l'ultimo (evidentemente). Mi sembra che col
DOS le cose fossero molto più semplici, sotto Win dubito si riesca a
spostare il punto di esecuzione così su due piedi senza passare per l'asm...
In sostanza quel che volevo scriverti è: sì, secondo me è possibile ma non
ho le conoscenze tecniche specifiche per dirti come... ci vorrebbe qualcuno
ben allenato con l'assembly e che conosca bene il sistema di gestione dei
processi sotto Win32...
In alternativa però ti ricordo che per fare quanto scrivi nel subject puoi
sfruttare una chiave del registry che al successivo riavvio della macchina
elimina l'eseguibile...
Io faccio proprio così: non costringo l'utente al riavvio, semplicemente gli
comunico che l'eseguibile dell'uninstaller verrà eliminato al prossimo
riavvio...
Ciao e buon lavoro :-)
Ps: se tu riuscissi a realizzare quanto ti ho proposto più sopra mi farebbe
molto piacere saperlo... non per scroccare sorgenti ovviamente ;-)
--
Andrea Magni
E-Mail: 
ama...@interac.it

"Andrea"
[...]
| In alternativa però ti ricordo che per fare quanto scrivi nel subject puoi
| sfruttare una chiave del registry che al successivo riavvio della macchina
| elimina l'eseguibile...
| Io faccio proprio così: non costringo l'utente al riavvio, semplicemente
gli
| comunico che l'eseguibile dell'uninstaller verrà eliminato al prossimo
| riavvio...
sono interesato, come fai a cancellare il file da una chiave del regisrty?
Usi un altro eseguibile? O come?
Se e' cosi' siamo ancora al punto di partenza ;)?
Grazie, ciao
Alan Solo

 molto piacere saperlo... non per scroccare sorgenti ovviamente ;-)
ma dai! :-) se riuscirò in qualcosa sarai il primo ad avere i sorgenti.
Ciao e grazie. a presto, lo spero. :-)
Giuseppe

 ma dai! :-) se riuscirņ in qualcosa sarai il primo ad avere i sorgenti.
Tra l'altro se non ricordo male Zortek potrebbe essere la persona giusta per
darti(ci) una mano... :-)
Ciao


 Delphi. :-)
ciao andrea,
come un pesce in una boccia di vetro. :-)
grazie per i due metodi che hai postato.
per la finestra del primo, quello col command, non credo che gli
utilizzatori del programma avranno problemi ad accettare la visione
momentanea di una finestra. ;-)))
il sistema è windows 98, ma non escludo la possibilità che giri, o si tenti
di farlo girare, su "95" o "NT", "2000" o "ME".
tra l'altro col tuo esempio mi hai fatto conoscere alcune istruzioni nuove.
:-)
nel deinstallatore, non sapendo ancora creare dei controlli senza vcl, e non
volendo usare le vcl, ho fatto tutto a via di messagebox... ma credo che per
un deinstallatore sia più che sufficiente. l'eseguibile è di 48k.
appena avrò ottenuto accettabili risultati con il file mapping, mi
permetterò ancora di chiederti, e di chiedere a zortek, sempre se è
d'accordo, chiarimenti su qualcosa che non capirò. (sembra il discorso di un
veggente!) :-)
Ciao, e grazie ancora.
Giuseppe