[Résolu] Lancer un processus rebel

Vous voulez de l'aide ? Postez ici :)
Post Reply
Aangrod
Posts: 35
Joined: 30 Jun 2013, 10:02

[Résolu] Lancer un processus rebel

Post by Aangrod »

Bonjour à tous et à toutes,

J'avais besoin d'exécuter un exécutable en commande détachable à l'aide du code et quelle ne fut pas ma surprise de constater que si je parvenais à lancer tous les processus sur lesquels j'avais procédé aux tests, celui qui m'intéressait pour la phase réelle jouait les rebelles.
Pour information, j'appelle le processus ainsi :

Code: Select all

Process.startDetached("C:/Program Files (x86)/DossierDuRebel/LogicielRebel.exe");
Après plusieurs essais, je comprends qu'il existe une dépendance de l'exécutable avec certains fichiers présents dans son dossier. Si depuis un raccourci bureau il parvient à se lancer sans encombres, il n'en va pas de même depuis un simple lancement du processus.

Je me suis dit qu'il me suffisait dès lors de préciser un workingDirectory mais je n'y suis pas parvenu et je ne suis même pas certain que cela résolve mon problème. D'après le wiki, la commande prend la forme suivante :

Code: Select all

Process.startDetached(filename, parameters, workingDirectory);
J'avoue ne pas avoir très bien compris la syntaxe. D'après ce que je "déchiffrais",il m'était possible de créer un tableau de paramètres et de l'inclure en tant que paramètres. Déjà, première incompréhension de ma part car je pensais que le workingDirectory pouvait justement être précisé en paramètres.
J'ai passé une bonne heure à lutter avec cette commande mais elle m'a mis K.O :cry:

J'ai essayé tout ce qui me semblait être une syntaxe plausible, essayant même de spécifier en arguments de paramètres un nouvel array vide pour n'indiquer que le workingDirectory, mais rien n'y fait. Je suis forcé d'admettre mon incompétence la plus totale.
Pourriez-vous me donner un exemple de syntaxe correcte incluant deux paramètres différents en plus d'un workingDirectory?

En attendant, j'ai tout de même trouvé une solution à mon problème bien qu'une fois encore, je ne la trouve guère élégante. Mon astuce consiste tout simplement à faire une copie des fichiers de dépendance et à les placer dans le répertoire d'Actionaz. J'avais l'intuition que cela fonctionnerait et c'est bien le cas mais mes connaissances limitées ne me permettent pas de comprendre pourquoi et je n'aime pas ignorer le fonctionnement des choses. Si vous pouviez également m'éclairer là-dessus, cela m’ôterait une question existentielle de l'esprit :D

D'avance, merci.
Last edited by Aangrod on 19 Sep 2013, 10:25, edited 1 time in total.
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: Lancer un processus rebel

Post by Jmgr »

J'ai essayé tout ce qui me semblait être une syntaxe plausible, essayant même de spécifier en arguments de paramètres un nouvel array vide pour n'indiquer que le workingDirectory, mais rien n'y fait. Je suis forcé d'admettre mon incompétence la plus totale.
Pourriez-vous me donner un exemple de syntaxe correcte incluant deux paramètres différents en plus d'un workingDirectory?
Par exemple :

Code: Select all

Process.startDetached("C:\\Windows\\notepad.exe", "test.txt", "c:\\")
Ouvre Notepad qui indique ne pas trouver le fichier et va proposer de le créer. Ce dernier est créé dans le dossier de travail : c:\
"My software never has bugs. It just develops random features."
Aangrod
Posts: 35
Joined: 30 Jun 2013, 10:02

Re: Lancer un processus rebel

Post by Aangrod »

Merci pour ta réponse, je procéderai au test ce soir ou dans deux jours pour voir si cela fonctionne.
Aangrod
Posts: 35
Joined: 30 Jun 2013, 10:02

Re: Lancer un processus rebel

Post by Aangrod »

Je reviens aux nouvelles. Cela fonctionne parfaitement .
Je ne vais plus avoir besoin de copier les fichiers dans le dossier d'Actionaz, ce qui était pitoyable.

J'ai tout de même une question. J'utilisé la syntaxe

Code: Select all

Process.startDetached("C:/Program Files (x86)/DossierRebel/ExecutableRebel.exe","","C:/Program Files (x86)/DossierRebel/")
Ne pas avoir mentionné de paramètres est-il bien sans conséquences? Par ailleurs, je n'ai toujours pas compris le rôle de ces paramètres, exceptés dans l'exemple donné. Auriez-vous un lien vers ou pouvez-vous me dire que chercher pour avoir accès à la documentation relative à ces paramètres?
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: Lancer un processus rebel

Post by Jmgr »

Indépendamment d'Actionaz, lorsqu'on démarre un programme on peut lui donner des paramètres. Les programmes en mode texte se servent de ces paramètres pour savoir quoi faire. Par exemple le programme "cp" permet de copier un fichier et prend en paramètre le fichier source et le fichier cible.
Les programmes avec une interface graphique peuvent également accepter des paramètres, par exemple si tu démarres Firefox avec comme paramètre http://actionaz.org le navigateur va s'ouvrir et directement charger la page Web d'Actionaz.
Et donc ce paramètre nommé "parameters" permet de préciser les paramètres qui seront transmis au programme lors de son démarrage.
Sous Windows si tu double-clic sur un programme tu vas le démarrer sans paramètres.
"My software never has bugs. It just develops random features."
Aangrod
Posts: 35
Joined: 30 Jun 2013, 10:02

Re: Lancer un processus rebel

Post by Aangrod »

Merci de m'avoir répondu si rapidement :wink:
Post Reply