Newsgroup: it.comp.lang.visual-basic
Titolo: Setup VB6

Tra i vecchi post ho trovato uno di Zanna che parlava di un suo progettino 
per per incapsulare i tre files che crea il wizard in un unico exe. Copio 
incollo il post:
--------------
Io copio il prog. nella cartella da "pacchettizzare" (se non l'avevo già
fatto), doppio click e lui crea in automatico un file unico.
A chi voglia posso anche pubblicare i sorgenti.
Ciao
-- 
Math Parser : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net
--------------------
Qualcuno ha per caso quei sorgenti, oppure sa se per caso si trovano sul 
sito comune? Grazie
--
Greg

 sul sito comune? Grazie
Lacia perdere l'installer di VB che č una motozappa.
Piuttosto usa Inno Setup, gratuito e completissimo.
http://www.jrsoftware.org/isinfo.php
-- 
-> GbC|
www.gbcweb.com
www.chiappori.com
 

 
http://www.jrsoftware.org/isinfo.php
Provato, non funzia! Problemi, grandi problemi.
Ho importato il file .list con istoll ma poi si inceppa al primo file da 
impacchettare: file comcat.dll non trovato.
Se provo a commentare questo file si inceppa al secondo e cosi via.
Poi sul completissimo sorvoliamo, ha sempre bisogno che il lavoro sporco 
glielo faccia il pdw!
--
greg 

 Se provo a commentare questo file si inceppa al secondo e cosi via.
Risolto; se metto il file .iss nella cartella support creata dall'Installer 
di VB vede tutti i files.
Ma.. quando arriva a a questa riga:
Source: RICHED32.DLL; DestDir: {sys}; Flags: restartreplace 
uninsneveruninstall sharedfile
si blocca con errore: "unsafe file detected"
Mo vedo sto help inglese, se ci capisco qualcosa.
--
greg

 Se provo a commentare questo file si inceppa al secondo e cosi via.
La sezione file di un mio progetto in inno setup è questa e funziona.
| ; [Bootstrap Files]
| ; @COMCAT.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,6/1/98 12:00:00 AM,22288,4.71.1460.1
| Source: COMCAT.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile regserver
| ; @VB6IT.DLL,$(WinSysPath),,$(Shared),10/2/00 12:00:00 AM,122128,6.0.89.88
| Source: VB6IT.DLL; DestDir: {sys}; Flags: promptifolder sharedfile
| ; @STDOLE2.TLB,$(WinSysPathSysFile),$(TLBRegister),,6/3/99 12:00:00 AM,17920,2.40.4275.1
| Source: STDOLE2.TLB; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile regtypelib
| ; @ASYCFILT.DLL,$(WinSysPathSysFile),,,3/8/99 12:00:00 AM,147728,2.40.4275.1
| Source: ASYCFILT.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile
| ; @OLEPRO32.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,3/8/99 12:00:00 AM,164112,5.0.4275.1
| Source: OLEPRO32.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile regserver
| ; @OLEAUT32.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,4/12/00 12:00:00 AM,598288,2.40.4275.1
| Source: OLEAUT32.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile regserver
| ; @MSVBVM60.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,8/29/01 6:00:44 PM,1388544,6.0.89.64
| Source: MSVBVM60.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile regserver
| 
| ; [Setup1 Files]
| ; @dbexpint.dll,$(WinSysPath),,$(Shared),4/15/04 4:01:00 PM,124416,7.1.1391.25420
| Source: dbexpint.dll; DestDir: {sys}; Flags: promptifolder sharedfile
| ; @STDFTIT.DLL,$(WinSysPath),,$(Shared),8/5/98 12:00:00 AM,6656,6.0.81.63
| Source: STDFTIT.DLL; DestDir: {sys}; Flags: promptifolder sharedfile
| ; @MSSTDFMT.DLL,$(WinSysPath),$(DLLSelfRegister),$(Shared),7/15/00 12:00:00 AM,118784,6.0.88.4
| Source: MSSTDFMT.DLL; DestDir: {sys}; Flags: promptifolder regserver sharedfile
ecc.

 si blocca con errore: "unsafe file detected"
Quando ti dà questo tipo d'errore,
elimina semplicemente la riga dallo script,
in quanto non è necessario installare il componente in oggetto.
Questo componente infatti fa parte del SO.
--
Ciao Fede
By Chicco Production
http://bcp.freetools.it

 uninsneveruninstall sharedfile regserver
Si, evito l'errore se il file si trova nella stessa cartella dello script, 
oppure se si indica il percorso nella riga.
Ad ogni modo sono riuscito a realizzare il primo pacchetto in un solo file 
senza avere errori.
Ma sempre partendo dal file di vb come vedo che fai anche tu.
Non male, vale la pena di approfondire la conoscenza. Ho notato che comprime 
piu del vb. Un pacchetto vb da 5 mega ro ricrea in circa 4.
--
greg 

Altre consigli che ti possono essere utili...
[Setup]
AppName=MioProgramma
AppVerName=MioProgramma 1.0.0.0
AppPublisher=MioNome
AppPublisherURL=
http://www.miosito.it
AppSupportURL=
http://www.miosito.it/support.htm
AppUpdatesURL=
http://www.miosito.it/updates.htm
DefaultDirName={pf}\MioProgramma
DefaultGroupName=MioProgramma
AllowNoIcons=yes
LicenseFile=Licenza.txt
InfoBeforeFile=infobefore.txt
PrivilegesRequired=admin
OutputBaseFilename=MioProgramma v1.0
Compression=zip
WizardImageFile=WizardImageFile.bmp
[Tasks]
Name: desktopicon; Description: Create a &desktop icon; GroupDescription:
Additional icons:
Name: quicklaunchicon; Description: Create a &Quick Launch icon;
GroupDescription: Additional icons:; Flags: unchecked
[Languages]
Name: en; MessagesFile: compiler:Default.isl
[Files]
;Il punto di partenza in Source
;è la cartella in cui hai salvato il progetto di InnoSetup.
;Per cui puoi usare (per esempio) la punteggiatura descritta di seguito
;per indicare la posizione del file:
Source: ..\Support\ASYCFILT.DLL;
;In Flags setta correttamente il commando Reg
;a seconda delle librerie che devi registrare
;OCX, DLL => Flags: regserver
;TLB => Flags: regtypelib
Source: ..\Support\COMCAT.DLL; DestDir: {sys}; Flags: regserver
Source: ..\Support\STDOLE2.TLB; DestDir: {sys}; Flags: regtypelib
;per installare un'intera cartella del tuo programma
;(per esempio la cartella Dati)
;devi usare la seguente sintassi:
Source: ..\Dati\*.*; DestDir: {app}\Dati; Flags: recursesubdirs
;per installare caratteri aggiuntivi...
Source: C:\Windows\Fonts\SMALLE.FON; DestDir: {fonts}; FontInstall: Small
Fonts; Flags: onlyifdoesntexist
[INI]
Filename: {app}\MioProgramma.url; Section: InternetShortcut; Key: URL;
String: 
http://www.miosito.it
[Icons]
Name: {group}\MioProgramma; Filename: {app}\MioProgramma.exe
Name: {group}\MioProgramma Guide; Filename: {app}\MioProgramma.chm
Name: {group}\MioProgramma on the Web; Filename: {app}\MioProgramma.url
Name: {userdesktop}\MioProgramma; Filename: {app}\MioProgramma.exe; Tasks:
desktopicon
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\MioProgramma;
Filename: {app}\MioProgramma.exe; Tasks: quicklaunchicon
[Run]
Filename: {app}\MioProgramma.exe; Description: Launch MioProgramma; Flags:
nowait postinstall skipifsilent


 piu del vb. Un pacchetto vb da 5 mega ro ricrea in circa 4.
Se guardi il mio precedente Post
noterai che all'inizio dello Script c'è una riga...
Compression=zip
Posizionati sopra Compression e premi il tasto F1,
nella guida che ti si è aperta ti compare una lista
delle varie opzioni di compressione.
Non male vero?


 Ma sempre partendo dal file di vb come vedo che fai anche tu.
Si è il pacchetto base che creai la prima volta.
Sostanzialmente mi sono fatto uno script base, con tutte le DLL OCX che mi
serve registrare, poi a quello aggiungo i files del programma ecc.
Adesso ho sperimentato anche qualche funzione avanzata, come il tipo di
installazione: Server, Client, StandAlone (copio e installo dei componenti
a seconda del tipo, o setto delle file ini a seconda del tipo), oppure
un'installazione a spunte/option button.

 AppName=MioProgramma
Grazie, e per l'Unistall oltre che settarlo a true quale programma bisogna 
indicare?
--
greg 

 un'installazione a spunte/option button.
Per fare ste cose usi un ulteriore tool?
--
greg 

 indicare?
?!?


 ?!?
Questa riga qua:
SignedUninstaller=false
Immagino bisogna indicare quale prog usare per disinstallare
--
greg 

 Immagino bisogna indicare quale prog usare per disinstallare
No. SignedUninstaller serve ad allegare una firma digitale al programma 
di disinstallazione.
Serve sotto Vista, solo per evitare che l'utente venga avvertito circa 
un "programma sconosciuto".
Inno fornisce anche un programma di disinstallazione, che verrà messo 
nella stessa cartella del programma. Quindi per la disinstallazione, a 
meno di esigenze particolari, non devi fare niente.
-- 
S.

 meno di esigenze particolari, non devi fare niente.
Ecco, nella cartella non mi compare nulla, oltre all'icona del programma, 
tuttavia è disinstallabile da pannllo controllo.
greg 

 tuttavia è disinstallabile da pannllo controllo.
Nella sezione [Icons] metti una cosa del genere:
[Icons]
....
Name: "{group}\{cm:UninstallProgram,NomeProgramma}"; Filename: 
"{uninstallexe}"
-- 
news:it-alt.comp.software.openoffice : Il newsgroup dedicato a
OpenOffice.org, la suite open source di applicazioni per ufficio.
Saluti, VITRIOL

 Per fare ste cose usi un ulteriore tool?
Uso IsTool che ti aiuta abbastanza. L'ho installato insieme ad inno setup e
rende il tutto molto intuitivo.
http://www.istool.org/gfx/istool2.png

 "{uninstallexe}"
Perň... grazie. Ma grazie anche ad Andrea e Tiscali.
DEvo dire che comincio ad apprezzarlo.
Sto facendo decine di prove con varie impostazioni, per cominciare a capire 
cosa fanno e man mano che vado č soprendente.
Vista la disponibilitŕ chido ancora 2 cosine:
Uno: non trovo piu dove si imposta se voglio/non voglio l'icona sul desktop
due: come si fa a far apparire il dialogo  che setta se l'applicazione sarŕ 
usata da tutti o solo dall'admin?
Grazie ancora
-- 
Greg 

 usata da tutti o solo dall'admin?
| [Icons]
| Name: {commondesktop}\Nome; Filename: {app}\Programma.exe; WorkingDir: {app}; IconFilename: {app}\Icona.ICO; IconIndex: 0
| [Setup]
| PrivilegesRequired=admin
Questo indica solo i requisiti per l'installazione, che deve essere un
adminitrator. Ma non è quello che chiedi :)
Per il tuo discorso *penso* che deva mettere la spunta e poi gestire te
dove fare i collegamenti se sul desktop dell'utente o su quello di AllUser
Il check lo fai con un Task (da IsTool) o con questa riga (che nel mio caso
spunta se installare o meno firebird)
| [Tasks]
| Name: Firebird; Description: Installazione Firebird; GroupDescription: Firebird; Flags: unchecked
Poi nella sezione [files]
| Source: ..\Firebird.exe; DestDir: {tmp}; Tasks: " Firebird"; Components: 
Ed infine il run dell'eseguibile (che a te non serve)
| [Run]
| Filename: {tmp}\Firebird.exe; Tasks: Firebird
Non so se si può fare lanciare il setup senza copiarlo.
Comunque installa IsTool è molto intuitivo. Poi magari ti guardi come
genera lo script InnoSetup ed eventualmente vai a modificarlo a mano.

 usata da tutti o solo dall'admin?
Vedo che Andrea ti ha già risposto su questo punto.
Può essere che ci sia la necessità di fare qualche trucco con il registro.
-- 
S.

 registro.
No no, tra i tanti script che visto/letto ce n'era uno che faceva questo, 
però vai a ricordare quale.
Farlo da me manco se ne parla, al massimo son capace di capirlo se lo 
ritrovo :)
-- 
Greg 

 ritrovo :)
Prova a vedere in quelli forniti con Inno, può darsi che si trovi lì dentro.
Se trovi la soluzione scrivila, magari tornerà utile ai posteri (o anche 
a noi stessi).
-- 
S.

 anche a noi stessi).
Tranquillo, il primo ad averne bisogno sono io che a distanza di qualch mese 
non mi ricordo piu le cose.
Ricordo che anni fa mi ero fatto un programmino dove in un db salvavo tutti 
quelli che consideravo "tips" poi con una treview li esponevo tutti in 
ordine alfabetico. Bastava cliccare  su uno e alla destra dell'albero in una 
rtb compariva il testo del tip.
Adesso trovo piu comodo chiedere a google "greg inno setup" e mi ritorna 
tutto, il mio il tuo il suo.
-- 
Greg