OVH Cloud OVH Cloud

Problème appel programme x=shell()

4 réponses
Avatar
le_troll
Bonjour, appel d'un exe par
x = shell(y, z)
voici ce que je fais:
ret = Shell(chemin, 1)

Alors pour certains exe ça marche, pour d'autres ça me sort des messages
du cru, genre "le machin ou les bidules ne sont pas chargés)...

Comment remédier à votre avis ?
--
Merci, @+, bye, Joe : ng75@noos.fr
----------------------------------------------------------
Avec une hache, celui qui tient le manche a toujours raison.
----------------------------------------------------------

4 réponses

Avatar
Pascal B.
Bonjour Troll,

C'est peut-être que le programme ne trouve pas ses composants qui se trouvent dans le répertoire de l'Exe.
Il faudra alors modifier le lecteur et le répertoire par défaut et donner celui de l'Exe.

ChDrive = Chemin
ChDir = Chemin
Ret = Shell(Chemin,1)

Si cela ne fonctionne toujours pas, c'est que tu ne démarres pas le bon Exe.

Cordialement
Pascal


"le_troll" a écrit dans le message de news:e%
| Bonjour, appel d'un exe par
| x = shell(y, z)
| voici ce que je fais:
| ret = Shell(chemin, 1)
|
| Alors pour certains exe ça marche, pour d'autres ça me sort des messages
| du cru, genre "le machin ou les bidules ne sont pas chargés)...
|
| Comment remédier à votre avis ?
| --
| Merci, @+, bye, Joe :
| ----------------------------------------------------------
| Avec une hache, celui qui tient le manche a toujours raison.
| ----------------------------------------------------------
|
|
|
|
Avatar
ng
Salut,

Es-tu sûr d'avoir mis des guillemets pour les fichiers passés en ligne de
commande dont le nom contient des espaces notamment ?

Exemple :
Dim lRet as long
lRet=Shell("notepad.exe ""c:documents and settingsnommes
documentsfichier.txt""")

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/


"le_troll" a écrit dans le message de news:
e#
Bonjour, appel d'un exe par
x = shell(y, z)
voici ce que je fais:
ret = Shell(chemin, 1)

Alors pour certains exe ça marche, pour d'autres ça me sort des


messages
du cru, genre "le machin ou les bidules ne sont pas chargés)...

Comment remédier à votre avis ?
--
Merci, @+, bye, Joe :
----------------------------------------------------------
Avec une hache, celui qui tient le manche a toujours raison.
----------------------------------------------------------






Avatar
le_troll
Bonjour Pascal, merci, tu as donné la bonne réponse, je fais:

chemin = Mid(List1.List(List1.ListIndex), 42,
Len(List1.List(List1.ListIndex)) - 41)
For i = Len(chemin) To 1 Step -1
octet = Mid(chemin, i, 1)
If octet = "" Then Exit For
Next i
ou = Mid(chemin, 1, i - 1)
nom = Mid(chemin, i + 1, Len(chemin) - i)
ChDir ou
ret = Shell(nom, 1)

Et ça marche...
--
Merci, @+, bye, Joe :
----------------------------------------------------------
Avec une hache, celui qui tient le manche a toujours raison.
----------------------------------------------------------


"Pascal B." <pascbr{_AROBASE_}hotmail{_POINT_}com> a écrit dans le message
de news: u8cNb#
Bonjour Troll,

C'est peut-être que le programme ne trouve pas ses composants qui se


trouvent dans le répertoire de l'Exe.
Il faudra alors modifier le lecteur et le répertoire par défaut et donner


celui de l'Exe.

ChDrive = Chemin
ChDir = Chemin
Ret = Shell(Chemin,1)

Si cela ne fonctionne toujours pas, c'est que tu ne démarres pas le bon


Exe.

Cordialement
Pascal


"le_troll" a écrit dans le message de


news:e%
| Bonjour, appel d'un exe par
| x = shell(y, z)
| voici ce que je fais:
| ret = Shell(chemin, 1)
|
| Alors pour certains exe ça marche, pour d'autres ça me sort des


messages
| du cru, genre "le machin ou les bidules ne sont pas chargés)...
|
| Comment remédier à votre avis ?
| --
| Merci, @+, bye, Joe :
| ----------------------------------------------------------
| Avec une hache, celui qui tient le manche a toujours raison.
| ----------------------------------------------------------
|
|
|
|




Avatar
le_troll
Bonjour, merci de ta réponse,
Non, pas de guillemets car je ne sais pas ce que l'exe va appeler comme
fichiers...
La réponse de Pascal, sus-cité fonctionne, en fait l'exe appelait ses
fichier dans son rep, et moi je n'allais pas dans le rep de l'exe, je me
contentais de l'appeler, ainsi ça marche en ayant fait ce qui suit:

chemin = Mid(List1.List(List1.ListIndex), 42,
Len(List1.List(List1.ListIndex)) - 41)
For i = Len(chemin) To 1 Step -1
octet = Mid(chemin, i, 1)
If octet = "" Then Exit For
Next i
ou = Mid(chemin, 1, i - 1)
nom = Mid(chemin, i + 1, Len(chemin) - i)
ChDir ou
ret = Shell(nom, 1)
--
Merci, @+, bye, Joe :
----------------------------------------------------------
Avec une hache, celui qui tient le manche a toujours raison.
----------------------------------------------------------


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

Salut,

Es-tu sûr d'avoir mis des guillemets pour les fichiers passés en ligne de
commande dont le nom contient des espaces notamment ?

Exemple :
Dim lRet as long
lRet=Shell("notepad.exe ""c:documents and settingsnommes
documentsfichier.txt""")

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/


"le_troll" a écrit dans le message de news:
e#
> Bonjour, appel d'un exe par
> x = shell(y, z)
> voici ce que je fais:
> ret = Shell(chemin, 1)
>
> Alors pour certains exe ça marche, pour d'autres ça me sort des
messages
> du cru, genre "le machin ou les bidules ne sont pas chargés)...
>
> Comment remédier à votre avis ?
> --
> Merci, @+, bye, Joe :
> ----------------------------------------------------------
> Avec une hache, celui qui tient le manche a toujours raison.
> ----------------------------------------------------------
>
>
>
>