Ouverture d'un fichier avec commande shell

Ouverture d'un fichier avec commande shell - VB/VBA/VBS - Programmation

Marsh Posté le 08-03-2006 à 19:38:51    

Bonjour
 
j'ai fait une macro fonctionnant sous Word en VBA, dans laquelle j'ai mis une commande permettant d'ouvrir un fichier de cette facon :
Shell ("C:\Program Files\Adobe\Acrobat 5.0\Reader\AcroRd32.exe c:\test.pdf" ), vbMaximizedFocus
 
Je suis obligé dans ce cas de donner l'arborecense exacte du programme EXE  
 
Comment pourrai je faire en sorte que le fichier que je souhaite ouvrir s'ouvre automatiquement avec le programme associé a son extension ?
bien sur sans donner le nom du programme  
 

Reply

Marsh Posté le 08-03-2006 à 19:38:51   

Reply

Marsh Posté le 08-03-2006 à 22:01:12    

Salut
 
C'est peut être une piste... Je pense que la session shell qui va exécuter ta commande ne retrouve pas dans son path l'exécutable pour faire l'association avec le fichier.
 
Tu peux faire un point bat qui crée le path sur la session applicative (ton bat lance ausi ton programme) ensuite une chance qu'il s'y retrouve lors de l'exécution du shell.
 
Compare ton path de session applicative avec celui de ta session user. L'usage d'une commande dos fonctionne pourtant tout seul.
 
Encore une fois c'est une piste
Bon code
 

Reply

Marsh Posté le 10-03-2006 à 23:08:12    

merci,
mais ca semble bien compliqué comme manip
 
quelqu'un a une autre idée ?
 
En fait, je vais remplir un combobox avec une liste de fichier PPT PDF DOC XLS
Lorsque je selectionnerai un fichier dans la liste je veux qu'il souvre avec le programme associé a son extention
-les PDF avec acrobat reader  
-les PPT avec powerpoint ou la visionneuse de PPT
ect...
 
je pourrais facilement faire un test sur le type de fichier, et y accocier le chemin de l'executable
mais le soucis, c'est que je ne connais pas forcement le chemin de l'executable du PC utilisé
on peut avoir acrobat reader3 sur un pc et acrobat reader 5 sur un autre)
 
 

Reply

Marsh Posté le 11-03-2006 à 15:44:07    

Pour reprendre le post de acecel dans un autre thread, tu peux utiliser ShellExecute :
 
La déclaration, dans un Module :

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long


 
L'utilisation :

ShellExecute 0&, vbNullString, "C:\MonFichierWord.doc", MonParamètre, vbNullString, vbNormalFocus

Reply

Marsh Posté le 11-03-2006 à 22:54:00    

excelente réponse !!
c'est exactement ce que je cherchais
 
Je n'ai pas utilisé ton code, mais une recherche sur google avec shellexecute donne suffisament d'info,  
ex :
http://www.ml-consult.demon.co.uk/foxst-26.htm
 
merci juju2k
 
edit:  
ceci dit, ton code fonctionne, mais le site en lien donne des infos interessantes


Message édité par daniel-12 le 11-03-2006 à 22:59:38
Reply

Marsh Posté le 11-03-2006 à 23:09:40    

Tu feras gaffe, le lien que tu donnes montre comment utiliser la fonction ShellExecute avec FoxPro. Je sais pas trop ce que c'est (un langage pour gérer des bases de données ?), mais ce n'est pas du VB... ;)

Reply

Marsh Posté le 12-03-2006 à 00:00:40    

exact , c'est vrai, j'ai pas fait gaffe au moment de poster.
en fait , en recherchant sur google, j'ai trouvé beaucoup de pages traitant de shellexecute, et du coup, j'en ai donné une en lien, car elle me paraissait assez bien fournie (bien que je n'ai pas utilisé le code de cette page)
 
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed