Originariamente inviato da andreaciao_22
facci vedere quanto fatto da te fin'ora, così riusciamo a indirizzarti nella giusta via
Non stò a postare tutto il codice, perchè ritengo inutile, posto solamente le parti interessate.
Attualmente io copio i file nella cartella della mia applicazione scelta dall'utente con il seguente codice
codice:
[Files]
Source: "mio_File.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "Interop.AcroPDFLib.dll"; DestDir: "{app}"; Flags: ignoreversion
...........
..........
{app} contiene il percorso scelto dall'utente, quindi, la mia applicazione si installa in quel percorso.
Questo và bene fino a quando l'installazione è una nuova installazione, ma quando devo installare l'aggiornamento, non posso più utilizzare questa procedura, ma devo far installare i file direttamente nella cartella dove è stato installato il programma.
Quindi come prima cosa metto nella sezione [Setup] i comandi
DisableDirPage=yes,
DisableProgramGroupPage=yes
in questo modo disabilito la possibilità di far eseguire scelte all'utente, ma ora devo sapere dove si trova installata la mia applicazione.
Quindi dalla mia applicazione faccio creare un file .txt dove all'interno scrive il percorso di dove si trova installata, chiamiamolo Percorso.txt.
Ora a Innosetup devo dire di leggere quel file e io ho fatto così:
(per provare ho creato io manualmente il file e l'ho messo in c: )
[CODE]
codice:
Var
Contenuto: String;
Begin
LoadStringFromFile(('C:\Percorso.txt'), Contenuto);
end.
a questo punto nella stringa "Contenuto" ci dovrebbe essere il contenuto del file, ovvero il percorso che io ho precedentemente scritto dentro al file, che poi per prova ho messo il percorso del Desktop, così sono pure sicuro che sia una cartella non protetta.
Quindi nella sezione files scrivo
codice:
[Files]
Source: "mio_File.exe"; DestDir: Contenuto; Flags: ignoreversion
Source: "Interop.AcroPDFLib.dll"; DestDir: Contenuto; Flags: ignoreversion
...........
..........
Ma il tutto, pur non restituendo nessun errore, non funziona, ovvero nel desktop non viene copiato nessun file.