Bonjour,
J'ai besoin, de maniére portable, de trouver l'executable associé à une extension de fichier.
Merci de votre aide
Bonjour,
J'ai besoin, de maniére portable, de trouver l'executable associé à une extension de fichier.
Merci de votre aide
C'est pour faire quoi ? http://doc.qt.digia.com/qt/qdesktopservices.html pourrait t'aider.
Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.
Créer des applications graphiques en Python avec PyQt5
Créer des applications avec Qt 5.
Pas de question d'ordre technique par MP !
J'en ai besoin pour ouvrir un fichier pdf directement à la bonne page.
La syntax est la suivant "...\AcroRd32.exe /A page=49 my_pdf
J'ai donc besoin de connaitre le chemin de l'exe associer au pdf.
Dans ce cas tu n'as peut-être pas d'autre solution que d'utiliser les méthodes natives. Par exemple sous Windows, QDesktopServices::openUrl() utilise ShellExecute() en lui passant 0 comme lpParameters. C'est là que tu pourrais mettre tes paramètres. Donc de cette façon, tu n'as toujours pas à connaitre l'exécutable qui va se lancer...
Pour une implémentation multiplateforme, regarde dans les sources de Qt les qdesktopservices_<plateforme>.cpp pour voir comment ils font.
Oui mais malheureusement cela ne fonctionne pas non plus:
sous windows
"AcroRd32 /A page=50 my.pdf" fonctionne et ouvre le pdf page 50
alors que:
ouvre le pdf à la premiere page sans tenir compte du "/A page=50"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ShellExecute(NULL, "open", "my.pdf", "/A page=50", NULL, SW_SHOWNORMAL);
En même temps en lisant un peu la doc :
Mouais... Peut-être qu'il y a un moyen grâce au registre ou à ShellExecuteEx.If the lpFile member specifies a document file, lpParameters should be NULL.
Mais de toute façon, tes paramètres sont fortement liés à l'exécutable que tu penses utiliser. Donc dans ce cas :
fonctionne chez moi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ShellExecute(NULL, "open", "AcroRd32.exe", "/A page=50 my.pdf", NULL, NULL);
Partager