RunProgram qui ne run pas...

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
SPH
Messages : 4945
Inscription : mer. 09/nov./2005 9:53

RunProgram qui ne run pas...

Message par SPH »

Salut à tous.

Je me demandais pourquoi ce code ne fonctionnait pas toujours selon l'EXE à lancer :

Code : Tout sélectionner

RunProgram("c:\Scrab_FR\fin\fin.exe")
Bien sûr, l'EXE visé existe et s'ouvre quand je double clique dessus mais pas quand je le lance avec ce code ci-dessus. Y a t'il une subtilité que je n'ai pas capté ?
L'EXE en question est un code PB compilé. Il ne s'ouvre jamais.
Par contre, un autre programme compilé fait en PB s'ouvre à tous les coups.

Pourquoi ?

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: RunProgram qui ne run pas...

Message par case »

et comme ca?

Code : Tout sélectionner

RunProgram("c:\Scrab_FR\fin\fin.exe","","c:\Scrab_FR\fin\")
ImageImage
Avatar de l’utilisateur
SPH
Messages : 4945
Inscription : mer. 09/nov./2005 9:53

Re: RunProgram qui ne run pas...

Message par SPH »

Ha ouai, super. Ca a l'air de marcher...

Ou était la subtilité ? :?: :!:


PS : grand merci

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: RunProgram qui ne run pas...

Message par Marc56 »

Cela voulait dire que ton programme a besoin d'être dans le répertoire pour démarrer car il utilise d'autres éléments présents dans ce répertoire.

donc RunProgram avec changement de répertoire

Code : Tout sélectionner

RunProgram("c:\Scrab_FR\fin\fin.exe", "", "c:\Scrab_FR\fin\")
soit changer de répertoire avant

Code : Tout sélectionner

SetCurrentDirectory("c:\Scrab_FR\fin\")
; puis (plus besoin de préciser le répertoire)
RunProgram(fin.exe)
:wink:
Avatar de l’utilisateur
SPH
Messages : 4945
Inscription : mer. 09/nov./2005 9:53

Re: RunProgram qui ne run pas...

Message par SPH »

Dacodac, merci pour cette précision. 😎

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: RunProgram qui ne run pas...

Message par case »

RunProgram(Fichier$ [, Parametres$, RepertoireCourant$ [, Options [, programmeEmetteur]]])

Fichier$ Le nom de l'exécutable, y compris son chemin.
Parametres$ (optionnel) Les paramètres de ligne de commande qui seront transmis au programme.
RepertoireCourant$ (optionnel) Le répertoire qui sera alors le répertoire courant pour le programme lancé.

par défaut le repertoire courant par défaut du logiciel exécute par runprogram est le même que celui du programme qui le lance
dans ton cas si ton programme principal
est dans "c:\Scrab_FR\" quand tu lance RunProgram("c:\Scrab_FR\fin\fin.exe") il vas utiliser comme répertoire par défaut "c:\Scrab_FR\"
des lors si il a besoin de ressources se trouvant dans "c:\Scrab_FR\fin\" il ne vas pas les trouver dans "c:\Scrab_FR\" vas planter et donc tu aura l'impression qu'il ne se lance pas.
changer le répertoire courant pour le programme lancé permet de dire au programme lancé (fin.exe) que son répertoire principal est "c:\Scrab_FR\fin\"

si tu change le répertoire par défaut avant de lancer ton fin.exe comme l'indique marc56
SetCurrentDirectory("c:\Scrab_FR\fin\")
; puis (plus besoin de préciser le répertoire)
RunProgram(fin.exe)
n'oublie pas de le remettre a la valeur précédente ensuite sinon ton programme principale utilisera le répertoire par défaut pour trouver ses ressources et
plantera de la même manière
SetCurrentDirectory("c:\Scrab_FR\fin\")
; puis (plus besoin de préciser le répertoire)
RunProgram(fin.exe)
SetCurrentDirectory("c:\Scrab_FR\")
c'est plus propre de modifier le répertoire courant lors du runprogram a mon avis :)
ImageImage
Répondre