Salut,
J'aimerais exécuter un pdf que j'ai ajouté aux ressources de mon projet.
J'ai trouvé quelques messages pour ouvrir des word, etc, mais qui ne sont pas situés dans les ressources. Quel est son "chemin" pour l'execution?
Merci
Salut,
J'aimerais exécuter un pdf que j'ai ajouté aux ressources de mon projet.
J'ai trouvé quelques messages pour ouvrir des word, etc, mais qui ne sont pas situés dans les ressources. Quel est son "chemin" pour l'execution?
Merci
Salut,
Si tu as placé les PDF dans les ressources emarquées, il risque d'être difficile de l'exécuter directement car le fichier est embarqué dans l'assembly. Il n'y a pas de chemin car le fichier est représenté par un bloc mémoire. Le plus simple dans ce cas c'est d'extraire avant l'ouverture ce fichier vers un répertoire Temporaire afin qu'un lecteur de pdf puisse le lire.
D'accord, merci. J'ai cependant un problème: quand j'ajoute un fichier pdf dans les ressoures, je ne parviens pas à faire My.Resources.monfichier.Save("monfichier.pdf"), visual studio me souligne la ligne en me disant qu'il y a une erreur (ça à l'air de planter pour les fichiers pdf).
Comment faire?
Merci
Re,
en réalité c'est un peu plus complexe. Les fichiers ajoutés en resouces, "perdent" la notion de ficheir, c'est à dire qu'ils deviennent un bloc mémoire intégrés à l'assembly. C'est un tableau de byte[]. Il faut donc repasser par un FileStream pour l'enregistrer.
Voila ce que j'ai trouvé.
Pourtant, il y a incompatibilité de type entre la variable stream et My.Resources.help (help le nom de ma ressource pdf).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dim stream As System.IO.UnmanagedMemoryStream = My.Resources.help Dim streamFile As New System.IO.FileStream("fichier_temp.pdf", IO.FileMode.Create) Dim data(stream.Length) As Byte stream.Read(data, 0, data.Length) streamFile.Write(data, 0, data.Length) streamFile.Flush() streamFile.Close()
Quel est le type de variable à utiliser?
Merci
My.Resources.help n'est il pas de type byte[] ?
Merci
Mais voila, je ne parviens pas à lancer le fichier ensuite.
Il me dit que le fichier est introuvable. Mais quand je parcours l'explorateur, le fichier est bien là et s'ouvre très bien manuellement!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim stream() As Byte = My.Resources.help Dim streamFile As New System.IO.FileStream(Application.StartupPath & "/help.pdf", IO.FileMode.Create) streamFile.Write(stream, 0, streamAudio.Length) streamFile.Flush() streamFile.Close() Shell(Application.StartupPath & "/help.pdf", AppWinStyle.MaximizedFocus)
Une idée?
Merci
J'ai trouvé, j'ai simplement remplacé le shell par:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim myProcess As New Process() myProcess.StartInfo.FileName = Application.StartupPath & "\help.pdf" myProcess.Start()
Attention tout de même si il n'y a pas d'application associé au type pdf ...![]()
Heu, pardon pour la question, mais Acrobat Reader n'est pas l'application associée?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager