OVH Cloud OVH Cloud

questions sur "shell"

2 réponses
Avatar
Pierre
Bonjour,

J'ai un petit souci :

quand je tape \\serveur\d\test.doc directement sur la ligne de commande, il
ouvre word et le document test.doc
quaund je fais un appel à Shell à partir de VB, il ne marche pas :

sub test
r = shell(\\serveur\d\test.doc)
end sub

renvoie l'erreur "invalid procedure call or argument".

Est-ce que "shell" ne s'éxecute pas dans l'environnement par défaut ?

Merci.

Pierre.

2 réponses

Avatar
Christian Hugoud
Vois avec l'api shellexecute

Christian

"Pierre" a écrit dans le message de news:

Bonjour,

J'ai un petit souci :

quand je tape serveurdtest.doc directement sur la ligne de commande,
il ouvre word et le document test.doc
quaund je fais un appel à Shell à partir de VB, il ne marche pas :

sub test
r = shell(serveurdtest.doc)
end sub

renvoie l'erreur "invalid procedure call or argument".

Est-ce que "shell" ne s'éxecute pas dans l'environnement par défaut ?

Merci.

Pierre.



Avatar
Jacques93
Bonjour Pierre,
Pierre a écrit :
Bonjour,

J'ai un petit souci :

quand je tape serveurdtest.doc directement sur la ligne de commande, il
ouvre word et le document test.doc
quaund je fais un appel à Shell à partir de VB, il ne marche pas :

sub test
r = shell(serveurdtest.doc)
end sub

renvoie l'erreur "invalid procedure call or argument".

Est-ce que "shell" ne s'éxecute pas dans l'environnement par défaut ?



La fonction Shell de VB ne peut lancer qu'un programme executable, elle
ne tient pas compte des associations entre extension de fichier (ici
.doc) et application. Tu peux soit faire, en adaptant le chemin :

Shell "C:Program FilesMicrosoft OfficeOffice11Winword.exe
serveurdtest.doc"


Soit utiliser l'API Shellexecute qui lancera l'application associée aux
.doc :

Private 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
Private Const SW_SHOWMAXIMIZED = 3

Private Sub Command1_Click()
ShellExecute 0&, "open", "serveurdtest.doc", _
0&, 0&, SW_SHOWMAXIMIZED
End Sub



--
Cordialement,

Jacques.