Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Syntaxe d'un shell avec Foxit Reader

61 views
Skip to first unread message

ThierryP

unread,
Feb 2, 2012, 3:42:23 AM2/2/12
to
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 Files\Foxit Software\Foxit Reader\Foxit
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 ;-)

ThierryP

unread,
Feb 2, 2012, 4:16:48 AM2/2/12
to
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 !!)

@+

MichD

unread,
Feb 2, 2012, 5:39:43 AM2/2/12
to
Bonjour,

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:\Users\DM\Documents\Mon Fichier.doc"""
Shell "winword.exe " & Fichier, 1
End Sub
'--------------------------------


MichD
------------------------------------------
"ThierryP" a écrit dans le message de groupe de discussion :
3aacb436-2c6a-494f...@do4g2000vbb.googlegroups.com...

bcar

unread,
Feb 2, 2012, 5:54:09 AM2/2/12
to
A lire ce que tu écris je me dis que c'est le fait que
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 & """")

Maude Este

unread,
Feb 2, 2012, 9:36:10 AM2/2/12
to
Bonsour®

"ThierryP" a écrit
> 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 Files\Foxit Software\Foxit Reader\Foxit
> 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.

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:\Users\GeeDee\Documents\roudeltas.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



ThierryP

unread,
Feb 3, 2012, 10:45:49 AM2/3/12
to
Bonsoir Denis,

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" <michde...@hotmail.com> wrote:
> Bonjour,
>
> 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:\Users\DM\Documents\Mon Fichier.doc"""
> Shell "winword.exe " & Fichier, 1
> End Sub
> '--------------------------------
>
> MichD
> ------------------------------------------
> "ThierryP"  a écrit dans le message de groupe de discussion :
> 3aacb436-2c6a-494f-abe8-5a92f4185...@do4g2000vbb.googlegroups.com...

ThierryP

unread,
Feb 3, 2012, 10:50:53 AM2/3/12
to
Bonjoir ;o)) (Expression également sous copyright,... mais je ne sais
plus par qui)

Egalement fidèle au post(e) !!! Je vais tester ça ce week-end à tête
reposée (-10°C annoncés, bon prétexte pour ne pas décoller du PC !!)

Merci et bon week-end
0 new messages