Lancer le programme "Aperçu des images et des télécopieurs Windows" pour affiche

Résolu
cs_bonagad Messages postés 87 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 19 mai 2012 - 22 oct. 2010 à 14:40
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 26 oct. 2010 à 18:14
Salut les amis,
je suis entrain d'écrire un petit code qui, lorsque je clique sur un bouton nommé <Ouvrir>, il m'affiche une image jpeg (stocké sur disque) avec le programme "Aperçu des images et télécopieurs windows".
Alors cela revient à faire un clic droit physiquement sur le fichier, ensuite de faire "ouvrir avec" et de choisir parmi les programmes "Aperçu des images et télécopieurs windows".

Voici le bout de code que j'ai branché à l'événement clic de mon bouton et dont je n'ai pas le résultat escompté:

'Instance de la classe Process
Dim proc As New System.Diagnostics.Process()
'Nom de l'executable à lancer
proc.StartInfo.FileName = "c:\windows\system32\shimgvw.dll"
'Arguments à passer à l'éxécutable à lancer
proc.StartInfo.Arguments = "c:\test.jpg"
'Démarrage du processus
proc.Start()
'On libère les ressources dont on a plus besoin.
proc.Close() 'Attention Close ne met pas fin au processus.

7 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
26 oct. 2010 à 11:27
Tu as tout à fait raison, cela n'ouvre que dans le dernier logiciel.
Le code ci-dessous ouvre un fichier Tif dans le logiciel que l'on lui a spécifié en l'occurence "Microsoft Document Imaging" parce que l'ouverture se fait avec un executable contrairement à "Aperçu des images et télécopieurs Windows" qui est une DLL, je t'ai mis un site qui traite ce sujet.
'Instance de la classe Process
        Dim proc As New System.Diagnostics.Process()
        'Nom de l'executable à lancer
        proc.StartInfo.FileName = "C:\Program Files\Fichiers communs\Microsoft Shared\MODI\11.0\MSPVIEW.EXE"
        'Arguments à passer à l'éxécutable à lancer
         proc.StartInfo.Arguments = "Chemin du fichier.tif"
        'Démarrage du processus
        proc.Start()
        'On libère les ressources dont on a plus besoin.
        proc.Close() 'Attention Close ne met pas fin au processus.


Voici le site
http://duson.perso.sfr.fr/Telechargt/diapo_apercu_wXP.pdf
@+ Le Pivert
3
cs_bonagad Messages postés 87 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 19 mai 2012
26 oct. 2010 à 17:33
bonsoir Le Pivert,
D'abord, laisse moi te remercier infiniment pour n'avoir ménagé aucun effort pour m'aider à enfin trouver la solution à la problématique dont j'étais confronté il y 4 jours. Alors j'explique comment j'y suis arriver:
j'ai d'abord téléchargé le fichier pdf dont tu m'as indiqué (http://duson.perso.sfr.fr/Telechargt/diapo_apercu_wXP.pdf). A la fin de ce fichier il est indiqué un site (Un raccourci pour l'Aperçu des images et des télécopies - Windows XP) sur lequel j'y suis allé.
Pour mes tests j'ai décidé de créer le raccourci et je remarque que le programme "Aperçu des images et télécopieurs Windows" s'ouvre très bien.lorsque je fais un glissé déposé de l'image dessus l'image s'affiche bien.
j'ai eu alors l'intuition de récupérer le nom du raccourci du programme (qui est myRaccour.lnk).Et alors lorsque j'ai redéfini cette instruction (
 proc.StartInfo.FileName = "C:\Documents and Settings\Administrateur\Bureau\myRaccour.lnk"
),
j'étais follement surpris de'obtenir le resultat escompté.
mille fois merci.
@+
3
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
22 oct. 2010 à 17:30
Bonjour,
Voici un code qui ouvre tous les fichiers dans leur programme par défaut

  ' Ouvrir programme par défaut 
    Public Function OpenFile(ByRef File As String, Optional ByRef Parametres As String = "") As Object
        Process.Start(File)
        OpenFile = 1
    End Function


Dans un bouton:
Try
            'Ouvre le fichier dans son programme par défaut
            OpenFile("chemin du fichier")
        Catch ex As Exception
        End Try

@+ Le Pivert
0
cs_bonagad Messages postés 87 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 19 mai 2012
25 oct. 2010 à 11:36
bonjour Le Pivert,
merci pour ta réponse. En fait j'ai un autre code qui fait la même chose que le tient. Alors l'inconvénient que je trouve tout de suite, c'est que ça dépend de la dernière application installée sur la machine.Si par exemple Nero est installé en dernier lieu sur la machine ton affichera l'image avec Nero Snapshot .ce qui pour moi n'est le résultat escompté.Je veux spécifiquement afficher mon image avec le programme "Aperçu des images et télécopieurs Windows".
merci de me comprendre et j'espère de quelqu'un la solution tant attendue.
@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
25 oct. 2010 à 12:06
J'ai cela aussi a te proposer, chez moi il ouvre dans "Aperçu des images et télécopieurs Windows".
 'Instance de la classe System.Diagnostics.Process
        Dim proc As New Process()
        'Nom du fichier dont l'extension est connue du shell à ouvrir
        proc.StartInfo.FileName = "Chemin du fichier.jpg"
        'Démarrage du processus. Notepad (si il est associé aux fichiers .txt) sera alors lancé et ouvrira le fichier monfichier.txt
        proc.Start()
        'On libère les ressources
        proc.Close()



@+ Le Pivert
0
cs_bonagad Messages postés 87 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 19 mai 2012
26 oct. 2010 à 09:54
bonjour Le Pivert,
alors ton code c'est celui dont je t'ai parlé je dispose. Alors ce code marche évidemment que lorsque l'image par défaut doit s'ouvrir dans "Aperçu des images et télécopieurs Windows".
Je te propose de tester quelque chose: Repère ton fichier jpg et fait (clic droit -> Propriété-> clic sur modifier-> parmi la liste des programmes, choisi un autre programme qui peut ouvrir ton image jpg ->Ensuite clique sur Ok); reviens alors sur ton code, exécute le et fait moi un Feedback sur ce que cela retourne dans ta prochaine réponse.

C'est dommage que personne n'arrive à m'aider à part toi qui te démerde.
Merci quand même et idyllique journée.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
26 oct. 2010 à 18:14
C'est très bien, je suis content que ton problème soit résolu.
Maintenant je vais te proposer une solution pour éviter de mettre un chemin en dur pour le raccourci.Tu déplaces le fichier de ton raccourci dans le dossier Debug de ton application et tu mets ce code:
 Dim raccourci As String
        raccourci = My.Application.Info.DirectoryPath & "\myRaccour.lnk" 'chemin du raccourci
        'Instance de la classe System.Diagnostics.Process
        Dim proc As New Process()
        'Nom du fichier dont l'extension est connue du shell à ouvrir
        proc.StartInfo.FileName = raccourci
        'Arguments à passer à l'éxécutable à lancer
        proc.StartInfo.Arguments = "Chemin du fichier image.jpg"
        proc.Start()
        'On libère les ressources
        proc.Close()'Attention Close ne met pas fin au processus.

Comme cela ton application est autonome

Le Pivert
0
Rejoignez-nous