Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Syntaxe d'un shell avec Foxit Reader

6 réponses
Avatar
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=E0 :

A =3D Shell("""C:\Program Files\Foxit Software\Foxit Reader\Foxit
Reader.exe"" & Fichier & """, vbMaximizedFocus)

Cette ligne ex=E9cute 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=E8me,
j'ai test=E9 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 ;-)

6 réponses

Avatar
ThierryP
On 2 fév, 09:42, ThierryP wrote:
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 ;-)



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 !!)

@+
Avatar
MichD
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: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 ;-)
Avatar
bcar
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 & """")


Le 02/02/2012 09:42, ThierryP a écrit :
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 ;-)
Avatar
Maude Este
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 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.



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
Avatar
ThierryP
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" 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: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 ;-)
Avatar
ThierryP
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ê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" wrote:
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 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.

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" (By Val
hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal
lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Lo ng) 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