Syntaxe d'un shell avec Foxit Reader
Le
ThierryP

Bonjour tout le monde,
Je me bats pour trouver la syntaxe d'un shell pour ouvrir un pdf avec
foxit reader. Pour l'instant, j'en suis là :
A = Shell("""C:Program FilesFoxit SoftwareFoxit ReaderFoxit
Reader.exe"" & Fichier & """, vbMaximizedFocus)
Cette ligne exécute bien Foxit, mais se fiche royalement de ma
variable "Fichier", qui contient le chemin et le nom du fichier.
Pensant que ce sont les espaces dans le nom qui posaient problème,
j'ai testé avec un nom simple.. pas mieux.
Si quelqu'un a eu l'occasion de se pencher sur ce cas, (et surtout de
trouver la solution !!!), je suis preneur !
Merci d'avance ;-)
Je me bats pour trouver la syntaxe d'un shell pour ouvrir un pdf avec
foxit reader. Pour l'instant, j'en suis là :
A = Shell("""C:Program FilesFoxit SoftwareFoxit ReaderFoxit
Reader.exe"" & Fichier & """, vbMaximizedFocus)
Cette ligne exécute bien Foxit, mais se fiche royalement de ma
variable "Fichier", qui contient le chemin et le nom du fichier.
Pensant que ce sont les espaces dans le nom qui posaient problème,
j'ai testé avec un nom simple.. pas mieux.
Si quelqu'un a eu l'occasion de se pencher sur ce cas, (et surtout de
trouver la solution !!!), je suis preneur !
Merci d'avance ;-)
Pour l'instant, je m'en tire en créant un lien hypertexte, mais voilà,
Microsoft est très jaloux et n'aime pas qu'on utilise autre chose
qu'IE pour cette opération.....
Ce qui oblige à rétablir IE comme navigateur par défaut (IE EST un
défaut !!)
@+
Un exemple de syntaxe avec Shell :
Au besoin, tu peux être obligé de saisir le chemin de l'exécutable au complet!
'--------------------------------
Sub test()
Dim Fichier As String
Fichier = """C:UsersDMDocumentsMon Fichier.doc"""
Shell "winword.exe " & Fichier, 1
End Sub
'--------------------------------
MichD
------------------------------------------
"ThierryP" a écrit dans le message de groupe de discussion :
Bonjour tout le monde,
Je me bats pour trouver la syntaxe d'un shell pour ouvrir un pdf avec
foxit reader. Pour l'instant, j'en suis là :
A = Shell("""C:Program FilesFoxit SoftwareFoxit ReaderFoxit
Reader.exe"" & Fichier & """, vbMaximizedFocus)
Cette ligne exécute bien Foxit, mais se fiche royalement de ma
variable "Fichier", qui contient le chemin et le nom du fichier.
Pensant que ce sont les espaces dans le nom qui posaient problème,
j'ai testé avec un nom simple..... pas mieux.
Si quelqu'un a eu l'occasion de se pencher sur ce cas, (et surtout de
trouver la solution !!!), je suis preneur !
Merci d'avance ;-)
tu ais ""...Reader.exe"" & Fichier...
je pense qu'en mettant ""...Reader.exe "" & Fichier...
un espace est nécessaire entre le nom de ton executable et le fichier
que tu veux ouvrir
Sinon pour faire les choses jusqu'au bout
(et même si ce n'est pas la question),
le mieux serait d'utiliser le programme par défaut pour ouvrir le
document que tu veux ouvrir
il faut donc declarer la function :
Private Declare Function FindExecutable Lib "shell32.dll" _
Alias "FindExecutableA" (ByVal lpFile As String, _
ByVal lpDirectory As String, _
ByVal lpResult As String) As Long
écrire la fonction :
' -------------------------------------------------------------------
' -- Retrourne le chemin de l'executable (par défaut) désigné
' -- pour ouvrir le type de fichier passé en paramètre
' -- [IN] filename : type de fichier dont on veur trouver
' -- l'application pour l'ouvrir
' -- [RETURN] le chemin de l'executable
' -- ("" si aucun executable n'a été trouvé)
' -------------------------------------------------------------------
Private Function getOpenener(ByVal filename As String) As String
Dim fileappli As String * 250
Dim result As Integer
Dim i As Integer
getOpenener = ""
result = FindExecutable(filename, vbNullString, fileappli)
If result > 32 Then
i = InStr(1, fileappli, Chr(0), vbBinaryCompare) - 1
getOpenener = """" & Left$(fileappli, i) & """"
End If
End Function
et utiliser la fonction shell de la maniere suivante
dim filename as string
filename = "monpdf.pdf"
Call Shell(getOpenener(filename) & " """ & filename & """")
Le 02/02/2012 09:42, ThierryP a écrit :
"ThierryP" a écrit
copier le code ci-dessous dans un module standard.
VBA se débrouille pour trouver le programme par défaut pour ouvrir le fichier
avec l'extension correspondante défini dans windows
si Foxit est défini pour ouvrir .pdf alors foxit sera utilisé
si l'extension est .htm alors windows utilise le browser par defaut
etc...
'========================================= Option Explicit
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
Const SW_SHOWNORMAL = 1
Sub TestRead() 'NomFichier)
Dim nomfichier As String
Dim Reponse As Variant
'------ utiliser l'une des trois syntaxes ci-dessous
'nomfichier = "C:UsersGeeDeeDocumentsroudeltas.pdf"
'nomfichier= [B4]
nomfichier =
"http://a.yfrog.com/img535/6424/af447rapport23janv2012.pdf"
Reponse = ShellExecute(1, vbNullString, nomfichier, vbNullString,
"C:", SW_SHOWNORMAL)
'---- on peut ici mettre un test de Reponse en cas d'erreur (voir aide API
shellexecute dans VB ou MSDN)
End Sub
Il semble que ma réponse se soit perdue quelque part dans les serveurs
de Google.....
Donc, un grand merci pour ta réponse (rapide et efficace comme
toujours !!) !
Il semble que le problème vienne plus de Foxit, qui a du mal à prendre
les paramètres que je lui passe. Donc même ta syntaxe ne ne lui plaît
pas !
Merci !!
ThierryP
On 2 fév, 11:39, "MichD"
plus par qui)
Egalement fidèle au post(e) !!! Je vais tester ça ce week-end à têt e
reposée (-10°C annoncés, bon prétexte pour ne pas décoller du PC !!)
Merci et bon week-end
On 2 fév, 15:36, "Maude Este"