+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Creare una cartella prima del download

  1. #1
    NicoCaciu non è in linea Novello
    Post
    5

    Exclamation Creare una cartella prima del download

    Salve a tutti,
    io ho fatto un installer che scarica dal mio sito internet dei file, ma io devo creare una cartella prima che inizi il download.
    Ho provato a usare il comando:

    [Dirs]
    Name:"{app}\manuali"

    Ma dopo non li salva. Io non so più dove sbattere la testa. AIUTOOOO!!!

    Grazie

  2. #2
    L'avatar di +m+
    +m+
    +m+ non è in linea Scribacchino
    Post
    922
    Un "installer"... con quale programma?

  3. #3
    NicoCaciu non è in linea Novello
    Post
    5
    Con inno setup

  4. #4
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    2,851
    Cerca di spendere qualche parola in più. Il download lo dovrebbe fare un tuo programma installato con InnoSetup o lo stesso InnoSetup? Nel secondo caso mostra le linee dello script di InnoSetup che dovrebbero fare questo lavoro.
    In ogni caso la directory "manuali viene creata o no ?
    Il regolamento del forum: la prima cosa da leggere.

  5. #5
    NicoCaciu non è in linea Novello
    Post
    5
    Inno steup scarica dei file come .dll, .pdf, .chm e lo stesso .exe da un server remoto. Prima pero' io devo crearmi una cartella con il nome "manuali". La crea ma non salva i file all'interno

  6. #6
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    2,851
    Quote Originariamente inviato da NicoCaciu Visualizza il messaggio
    Inno steup scarica dei file come .dll, .pdf, .chm e lo stesso .exe da un server remoto.
    Vuoi farci vedere con quali linee di script ? (seconda richiesta)
    Il regolamento del forum: la prima cosa da leggere.

  7. #7
    NicoCaciu non è in linea Novello
    Post
    5
    Si, scusa...
    codice:
    procedure InitializeWizard();
    begin
     itd_init;
     itd_addfile('http://www.sircamelettronica.it/immn/manual%20%28en%29.pdf',expandconstant('{tmp}\manual (en).pdf'));
     itd_downloadafter(wpReady);
    end;
    
    procedure CurStepChanged(CurStep: TSetupStep);
    begin
     if CurStep=ssInstall then begin
      filecopy(expandconstant('{tmp}\manual (en).pdf'),expandconstant('C:\Program Files\Interfaccia Moduli MN\manuali\manual (en).pdf'),false);
     end;
    end;
    
    [Dirs]
    Name:"{app}\Manuali";
    Name:"{username}\Documents\IMMN"
    Non ho messo tutti i download perchè mi pareva inutile

  8. #8
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    2,851
    In questa riga:
    Quote Originariamente inviato da NicoCaciu Visualizza il messaggio
    [CODE]
    filecopy(expandconstant('{tmp}\manual (en).pdf'),expandconstant('C:\Program Files\Interfaccia Moduli MN\manuali\manual (en).pdf'),false);
    il secondo expandconstant è inutile in quanto non ci sono costanti predefinite da decodificare. Dovresti però evitare di usare la cartella C:\Program Files almeno per due motivi: primo perché non è il luogo adatto per dei pdf, secondo perché non è detto che si chiami sempre così .

    Non capisco bene in quale cartella dovrebbero finire i file: {app}\Manuali , {username}\Documents\IMMN, Interfaccia Moduli MN\manuali\manual (en).pdf ?

    Il problema principale, comunque, è in questa riga:
    Quote Originariamente inviato da NicoCaciu Visualizza il messaggio
    codice:
    procedure CurStepChanged(CurStep: TSetupStep);
    TSetupStep è semplicemente un placeholder che deve essere sostituito con uno dei valori ammessi, nel tuo caso direi ssPostInstall. Di conseguenza anche la if sottostante sarà if CurStep=ssPostInstall.

    La morale è sempre la stessa: il codice va compreso prima di essere copiato.
    Il regolamento del forum: la prima cosa da leggere.

  9. #9
    L'avatar di +m+
    +m+
    +m+ non è in linea Scribacchino
    Post
    922
    Quote Originariamente inviato da Brontolo Visualizza il messaggio
    Dovresti però evitare di usare la cartella C:\Program Files almeno per due motivi: primo perché non è il luogo adatto per dei pdf, secondo perché non è detto che si chiami sempre così
    Consiglio sacrosanto, aggiungo anche...
    perchè non è affatto detto che poi il programma abbia il diritto di leggere o scrivere in questa cartella, quando eseguito con privilegi utente e non amministratore.
    Tipicamente se vuoi una "tua" cartella, con l'UAC abilitato, la scelta migliore è brutalmente fartene una del tipo
    c:\mioprogrammatantobello.
    Così potrai leggere e soprattutto scriverci con l'utente, giacchè l'ACL NTFS, vedendo il proprietario "giusto", te lo consentirà.
    Se invece vuoi utilizzare le cartelle standard di Windows (programmi, documenti, desktop etc) allora dovrai prendere i relativi valori con le opportune funzioni API o, addirittura se funziona, con %%.

  10. #10
    NicoCaciu non è in linea Novello
    Post
    5
    Grazie Brontolo e +m+, i vostri consigli mi hanno risolto il problema.
    Grazie ancora

+ Rispondi al Thread

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi