Newsgroup: it.comp.lang.visual-basic
Titolo: VB6 e avvio da CD con Autorun.inf

Ciao a tutti
avevo (notare il passato) un problema: ho fatto un simpaticissimo
programmimo in VB6, che volevo mettere su CD e far eseguire al suo
inserimento creando un opportuno file autorun.inf (una sorta di
autoplay, insomma).
Il problema è che su certi computer non andava, non essendoci
installete le DLL necessarie ai programmi VB o con versioni troppo
vecchie. E non bastava mettere le DLL sul CD nella stessa cartella del
mio programmino perchè:
- certe DLL vanno registrate
- se nel sistema operativo (nella system32) c'è presente una versione
troppo vecchia viene usata questa (per esempio la oleaut32.dll mi ha
fatto impazzire: su windows 98 base mi diceva che tale libreria era
scaduta).
Ho cercato in internet, nei gruppi e in ogni dove (almeno credo) e non
ho trovato soluzioni che un utente inesperto possa definire semplici.
Ergo mi son creato da solo la soluzione: ho fatto un programmino in C
(che con molta fantasia ho chiamato StartCD) che verifica se le DLL
necessarie di base sono installate. Se sono installate esegue il mio
programmino, in caso contrario le installa (vbrun60.exe).
Chi volesse condividere con me la gioia di usare StartCD può navigare
all'indirizzo web 
www.locati.it/michele/startcd
Ciao
   Michele

 all'indirizzo web 
www.locati.it/michele/startcd
premetto che non ho visto cosa hai fatto, ma debbo dire non è così semplice
come la descrivi, almeno se vuoi che il tuo applicativo VB possa funzionare
su qualsiasi versione di uindos
anzi, la vbrunxx.dll è proprio una di quelle dll che basta copiare dove è
l'eseguibile perché quest'ultimo funzioni, quindi può stare comodamente nel
cd insieme all'eseguibile
l'unica via è una procedura di installazione che installi le varie
componenti indispensabili (non è solo la vbrunxx.dll), le registri e, se
necessario, riavvii il sistema
ad esempio sono indispensabili (compatibilmente con quelle già presenti nel
sistema che potrebbero essere più recenti):
OleAut32.dll
OlePro32.dll
AsycFilt.dll
StdOle2.tlb
ComCat.dll
alcune di queste componenti richiedono, se installate correttamente, una
registrazione ed il riavvio del sistema
è ben per questo che esistono i pacchetti di installazione: non solo per
copiare i files (basterebbe un autoscompattante) ma per verificare la
versione delle componenti presenti nel sistema, verificare se devono essere
sostituite, eventualmente sostituirle, registrare le nuove e richiedere il
riavvio
copiare una dll 'e basta' è una azione barbara che può pregiudicare il
corretto funzionamento dell'intero sistema
personalmente in questi casi uso degli autorun che dicono 'esegui il
programma, se da un errore devi installarlo' ed inserisco nei suddetti i
pulsanti per eseguire il programma o installarlo
non vorrei sembrare antipatico...
volevo solo che fossi a conoscenza di queste cose :)
bau bau
-> GbC|
www.gbcweb.com

GbC| ha scritto:

Temo di essermi spiegato male.
VBRun60.exe è il programma distribuito da Microsoft che installa proprio 
le DLL che citi tu (oleaut32, olepro32, ...). Forse ti sei confuso con 
MSVBVM60.dll (anch'essa installata da VBRun60), anche grazie al fatto 
che Microsoft ha cambiato i nomi della macchina virtuale che esegue i 
programmi vb (ricordo la mitica VBRun300.dll!)
Ergo, il mio programmino StartCD non copia dll, ma avvia l'installazione 
dei componenti VB con il metodo super-standard e super-diffuso di 
eseguire VBRun60.exe.
Un'ultima nota: se la versione di OleAut32 è troppo vecchia (come su un 
Windows 98 appena installato) qualsiasi applicativo VB proprio non 
funziona, ergo non puoi mostrare all'utente nulla di fatto con vb, 
nemmeno una maschera semplice semplice dove chiedi all'utente di 
installare i componenti (mi sembra il solito gatto che in mancanza di 
meglio si mangia la sua coda).
Ora tocca a me dire "volevo solo che fossi a conoscenza di queste cose" ;)
Ciao
    Michele
PS: nessuna antipatia, anzi! Ci mancherebbe! Siamo tutti qui a scrivere 
(io ultimamente un po' poco, lo ammetto, ma le 4 ore al giorno di tempo 
libero le uso per dormire la notte;) a gratis, cercando di dare 
contributi e fare chiarezza sul bellissimo e immenso mondo della 
programmazione... checché se ne dica per me un programmatore è un 
artista che usa 102 pennelli per disegnare su 786'432 (=1024x768) tele!

"Michele Locati" ha scritto...
[snip]
[paste from MS]
Informazioni
Il seguente file è disponibile per il download dall'Area download Microsoft
(l'installazione è in inglese):
[/paste]
non lo avevo neanche preso in considerazione
-> GbC|
www.gbcweb.com

 programmi vb (ricordo la mitica VBRun300.dll!)
l'ho scaricato, decompresso e guardato le versioni dei files che
conteneva...
non solo l'installer č in inglese ma anche tutto il resto, compreso il
runtime di vb...
se vuoi ti faccio un installer con le componenti italiane corrette, cosě
tagliamo la testa al topo...
-> GbC|
www.gbcweb.com

fatto:
www.gbcdepot.com/files/VB6runtimeSetup.exe
   1.4 mb
contiene i runtimes in italiano
enjoy :P
-> GbC|
www.gbcweb.com

GbC| ha scritto:

Ti ringrazio per il tuo contributo, davvero apprezzato... Grazie!
Tuttavia ci sono degli aspetti mi lasciano un po' basito:
1) tutte le DLL installate dal tuo VB6runtimeSetup.exe, come quelle
installate da VBRun60.exe, sono in inglese. Ho verificato sul mio PC
(Windows XP Pro italiano aggiornato con ogni service pack possibile) e
su un altro PC (Windows XP Pro italiano appena installato), e sono
sempre in inglese. Ergo presumo che il risultato dell'installazione non
cambia usando il tuo setup o quello ufficiale di Microsoft.
2) in base alla mia personalissima esperienza, un utente inesperto (la
maggioranza degli italiani) di fronte ad un setup si trova sempre un
po' nel panico. Ergo meno cose gli si chiedono e meglio è. Così come
è ora StartCD, l'esecuzione tipo chiede solo una cosa del tipo: "per
consultare il CD occorre installare aggiornare il sistema. Vuoi farlo?"
E se dice di sì viene eseguito VBRun60.exe col parametro /Q, ovvero
installa senza ulteriori domande/finestre/richieste all'utente. L'unica
miglioria da parte del setup che gentilissimamente hai approntato
riguarda la richiesta di un eventuale riavvio della macchina. In
VBRun60 è in inglese e nel tuo VB6runtimeSetup.exe è in italiano.
3) Non so se legalmente posso ridistribuire le DLL contenute nel tuo
setup, mettendolo scaricabile dal mio sito
www.locati.it/michele/startcd
...ergo, riassumendo: ti ringrazio per il contributo, che però
preferisco declinare...
Ciao
   Michele