Bonjour à toutes et à tous,
Dans une application que je développe, je lance un visualisateur de fichier PDF pour afficher un PDF en cours de création. Là où ça se complique, c'est que je demande deux choses :
Je souhaite lancer le visualisateur par défaut, c'est-à-dire que je ne veux pas m'embêter à savoir où il se trouve. La fonction "OpenDocument" fait ça très bien (Windows et Linux), mais avec elle, je ne peux pas (ou ne sais pas) bloquer mon programme tant que le visualisateur n'est pas fermé, ce qui est ma deuxième demande.
D'un autre côté, le composant "TProcess" demande à savoir où se trouve le visualisateur à lancer, mais, grâce à son option "poWaitOnExit" ou sa propriété "Running", il permet d'attendre que le visualisateur soit fermé pour reprendre la main dans mon application. NOTA : toutefois, cette option et cette propriété ne sont pas fonctionnelles sous Linux (Ubuntu chez moi).
Quelle expérience avez-vous de cela ?
En picorant dans la fonction "OpenDocument", j'ai trouvé les commandes qui permettent de savoir où est le visualisateur par défaut pour Linux. Je n'ai pas compris sous Windows, la fonction renvoie sur "ShellExecuteW" qui, a priori ne permet pas de savoir si le programme est en cours où non.
Pour résumer, je cherche comment faire pour lancer un visualisateur de fichiers PDF avec les trois particularités suivants :
- Je ne veux pas savoir où sont les visualisateurs
- Je ne veux pas pouvoir reprendre la main dans mon application tant que le visualisateur n'est pas fermé.
- Il faut que ça fonctionne sous Windows et Linux.
J'espère que ce que je viens de raconter est assez clair.
Cordialement.
Pierre.
Partager