Pagina 3 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 37
  1. #21
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    130
    Originariamente inviato da andreaciao_22
    jasson,

    per il primo problema la variabile {src} in Innosetup ti dice la directory dalla quale esegui l'installer.

    per il secondo problema io mi creerei un file di configurazione in AppData in cui metto la directory in cui è installata l'applicazione. poi tramite l'installer vai a leggertelo.
    Bene potrebbe essere una soluzione, sai per caso la sintassi per far aprire un file ad esempio txt a Innosetup e copiarne il contenuto in una stringa?

  2. #22
    Originariamente inviato da jasson
    Bene potrebbe essere una soluzione, sai per caso la sintassi per far aprire un file ad esempio txt a Innosetup e copiarne il contenuto in una stringa?
    potrebbe essere utile e comodo, anche per tua applicazione installata, usare un file INI
    http://www.jrsoftware.org/ispphelp/i...?topic=readini

  3. #23
    io proverei: http://www.jrsoftware.org/ishelp/ind...stringfromfile
    in caso ti servisse questo è il link con una guida che ti spiega tutte le funzioni (pascal) di InnoSetup: http://www.jrsoftware.org/ishelp/
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  4. #24
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    130
    Stò cercando di seguire le guide, ma non mi riesce di farlo funzionare.
    Purtroppo non ho trovato un esempio che fà al caso mio, e non conoscendo il linguaggio utilizzato da InnsoSetup, stò annaspando,
    La funzione che permette di leggere il contenuto di un file dovrebbe essere
    Contenuto: String;
    LoadStringFromFile((Percorso file'), Contenuto);



    A questo punto nella stringa Contenuto, dovrebbe venirsi a trovare il testo scritto nel file, ma invece così non succede.

    Se qualcuno fosse così gentile da scrivermi l'istruzione corretta gli e ne sarei grato.

  5. #25
    facci vedere quanto fatto da te fin'ora, così riusciamo a indirizzarti nella giusta via
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  6. #26
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    130
    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.

  7. #27
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    130
    Ci sono riuscito, sbagliavo io ad impostare il codice.

    In pratica non posso utilizzare la stessa variabile, nelle diverse sezioni del codice, ma devo creare una funzione che restituisca un risultato,e poi richiamare il risultato di questa funzione

    Quindi nella sezione Code creo la mia funzione LeggiFile


    codice:
    Function LeggiFile(Contenuto: String): String;
     begin  
     LoadStringFromFile(('C:\Percorso.txt'), Contenuto);
     Result:=Contenuto
    end;
    In questo modo il risultato della funzione contiene il contenuto del file, ovvero il percorso scritto all'interno del file

    Poi nella sezione [File] gli dico di copiare il file in quel percorso, utilizzando il risultato della funzione
    codice:
    Source: "Mio_file.exe"; DestDir: "{code:LeggiFile}"; Flags: ignoreversion

  8. #28
    La variabile Contenuto dichiarala all'interno della function.

    questo per evitare un uso esterno, e magari non previsto della variabile.
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  9. #29
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    130
    Ho provato ad inserirla all'interno con la funzione Var, ma mi restituisce errore e non capisco perchè

    Cioè se scrivo


    codice:
    Function LeggiFile():
      Var 
      Contenuto: string;
      begin 
      LoadStringFromFile(('C:\Percorso.txt'), Contenuto);  
      Result:=Contenuto 
     end;
    Mi restituisce errore "identifier expected" sulla riga Var

  10. #30
    perchè dopo var ci va il nome... non l'enter...
    si mette l'invio solo per più variabili.e comunque la prima ci deve essere.
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.