Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [Delphi] Eseguire un file PDF

    Ciao a tutti,
    vorrei che la mia applicazione aprisse un file PDF (e come qs anche i file di AutoCAD e documenti .doc): il problema è che utilizzando ShellExecute si avvia AcrobatReader però non si apre il file PDF specificato.

    Come posso risolvere?

    Grazie.
    Stefano

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465

    Re: [Delphi] Eseguire un file PDF

    Originariamente inviato da peste1
    [...]
    il problema è che utilizzando ShellExecute si avvia AcrobatReader però non si apre il file PDF specificato.
    Questo è molto strano...hai provato a reinstallare Acrobat Reader per accertarti della corretta associazione dei file al programma?

    Originariamente inviato da peste1
    Come posso risolvere?
    In alternativa, potresti tentare di lanciare Acrobat Reader dal tuo programma (sempre con ShellExecute) e specificando come parametro il nome del file PDF che desideri visualizzare, sebbene io tenterei prima la strada della reinstallazione di Acrobat.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Come sempre grazie mille per la risposta!
    Ho testato il programma anche su altri computer e questo problema si presenta tale e quale.

    Il problema è che questo software dovrà funzionare su computer in Korea, Giappone, Russia, Grecia, Turchia e altri paesi. Per quanto riguarda i primi, come faccio - anche utilizzando le variabili di sistema se è possibile - a fargli recuperare la cartella Programmi e poi Acrobat?
    Stefano

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Originariamente inviato da peste1
    Come sempre grazie mille per la risposta!
    Ho testato il programma anche su altri computer e questo problema si presenta tale e quale.
    Molti usano la ShellExecute per aprire i documenti. Prova a postare il codice che hai usato...magari c'è un errore.

    Originariamente inviato da peste1
    Il problema è che questo software dovrà funzionare su computer in Korea, Giappone, Russia, Grecia, Turchia e altri paesi. Per quanto riguarda i primi, come faccio - anche utilizzando le variabili di sistema se è possibile - a fargli recuperare la cartella Programmi e poi Acrobat?
    Non credo che le variabili di sistema ti vengano in aiuto, poichè Acrobat potrebbe essere installato in qualsiasi percorso del disco; piuttosto, dovresti cercare all'interno del Registro di Configurazione eventuali riferimenti ad Acrobat; ce ne saranno sicuramente nella chiave HKEY_CLASSES_ROOT, ove l'applicazione viene associata al tipo di file .pdf.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    codice:
    ShellExecute(0,'OPEN',PChar(Percorso +'Data\Datasheets\filepdf.pdf','','',0);
    Gracias
    Stefano

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Originariamente inviato da peste1
    codice:
    ShellExecute(0,'OPEN',PChar(Percorso +'Data\Datasheets\filepdf.pdf','','',0);
    Io uso questa sintassi:
    codice:
    ShellExecute(Application.Handle, 'open', PChar(Percorso), nil, nil, SW_SHOWNORMAL);
    e funziona correttamente.

    Credo che il problema sia semplicemente da ricondurre all'ultimo parametro: il valore 0 (zero) corrisponde alla costante SW_HIDE; tale costante indica di aprire l'applicazione ma nascondere la finestra.

    Unico avvertimento: a volte la finestra di Acrobat che propone gli aggiormenti impedisce di avviare correttamente il programma e visualizzare il documento. Disabilita gli aggiornamenti automatici.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Grazie mille
    Stefano

  8. #8
    Io ho provato a usare la SW_HIDE

    ShellExecuteEx(Handle, pchar('print'), pchar('c:\prova.pdf'), nil, nil, SW_HIDE);

    ma ho questo problema : mi apre comunque la finestra di Adobe PDF, ma io non voglio che lo faccia, vorrei lo faccesse batch c'è un modo?

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Notato che la discussione, che nulla ha a che vedere col tuo problema se non una marginale attinenza con i PDF, è addirittura datata 2004??

    Come espressamente richiesto nel Regolamento Interno, non si riesumano le discussioni sepolte per agganciare una nuova richiesta, specialmente quando essa non è completamente attinente all'originale.

    Apri una nuova discussione, eventualmente rimandando a questa per riferimenti.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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 © 2025 vBulletin Solutions, Inc. All rights reserved.