Pages: [1]   Go Down
Author Topic: Ouvrir et fermer des applications avec Processing  (Read 1092 times)
0 Members and 1 Guest are viewing this topic.
Geneva
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3171
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

J'arrive à ouvrir plusieurs applications Processing avec ce code :

Quote
void setup() {
  size(200, 200);
}

void draw() {
  
  String[] params1 = {"/Volumes/appli_1.app" };
  open(params1);

  String[] params2 = {"/Volumes/appli_2.app" };
  open(params2);
  
}


Par contre pour les fermer c'est pas la joie... le seul truc qui marche, c'est ce code :

Quote
String[] params = { "killall","JavaApplicationStub" };
exec(params);


Malheureusement en procédant de cette façon, toutes les applications Processing sont arrêtées.
Et j'aimerais que l'application "Maitre" puisse subsister ( celle qui permet d'ouvrir et fermer les process et qui contrôle si les autres ne sont pas plantées).

J'aimerais également que cela fonctionne sous Mac, Windows et Linux (quitte à compiler trois méthodes différentes).

Est ce que quelqu'un aurait une solution ?
« Last Edit: November 21, 2010, 05:21:27 am by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Geneva
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3171
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La piste que je privilégie est la ligne de commande.

En tapant 'jps' dans la console (toutes plateformes, c'est du Java Virtual Machine smiley-wink), on sort les PID des processus Java en cours.

Par contre je n'ai pas trouvé comment avoir les nom des processus et comment les transmettre a l'application Processing.

Autrement la commande 'ps -l' me sort tout les processus en cours... donc ça fait beaucoup à trier.
« Last Edit: November 21, 2010, 03:04:35 pm by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Geneva
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3171
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

J'avance un peu.

Avec la ligne de commande :

Code:
ps ax | grep "JavaApplicationStub"

J'ai le PID et le path et le nom des applications Processing.

Maintenant il faut faire passer ces infos à l'appli Processing...
« Last Edit: November 21, 2010, 03:14:56 pm by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Geneva
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3171
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bon...

Avec cette ligne de commande:

Code:
ps ax | grep "JavaApplicationStub" > /Volumes/Test.txt

J'écris dans le fichier test les sorties de la console, je n'ai plus qu'à lire le contenu du fichier avec mon application pour connaitre le PID des autres applications Processing et les "killer".

Pour Mac ça devrait marcher.... maintenant, Windows et Linux... une idée ?  smiley-wink
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pour linux, ça marche aussi. Un petit kill et au revoirs l'appli ...
Par contre, le chemin vers Test.txt n'est pas valable sous environnement GNU/Linux, mais peut etre remplacé par "${HOME}/Test.txt "
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3171
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci pour l'info, ce fichier test.txt devrait se trouver sur une clé USB.

Pour l'instant je n'arrive pas à trouver la syntaxe qui permet d'écrire ce !@#$!@ de fichier "test"  ;D
« Last Edit: November 21, 2010, 05:07:26 pm by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tu as essayé de l'ecrire a coup de echo ?
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3171
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Est ce que tu peux développer ?  smiley


Autrement j'ai trouvé une librairie qui s'appelle "Napplet" qui permettrait de faire du multi-thread (avec setup et draw séparés), reste à voir si je peux arréter les processus par le code principal.
« Last Edit: November 22, 2010, 06:17:22 am by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Geneva
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3171
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai une solution un peu barbare, je fais un shell dans un fichier executable.

Code:
#!/bin/bash
ps ax | grep "JavaApplicationStub" > /Volumes/Test.txt

Le seul problème qui subsiste c'est que j'ai une console qui s'ouvre à chaque appel et qui reste ouverte.
« Last Edit: November 22, 2010, 02:21:19 pm by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Geneva
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3171
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

En rajoutant ça a la fin du shell, le terminal se ferme :

Code:
osascript -e 'tell application "Terminal"
set nb to count of windows
if nb > 1 then close first window
if nb <= 1 then quit
end tell' &

Mais ça marche uniquement sur Mac.

Si quelqu'un peut me décrire comment lire le PID et l'écrire sur les autres plateformes ce sera le bienvenu.  smiley-wink
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Paris
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pour Windows, il y a les outils sysinternals :
Pour le PID, c'est PSList : http://www.microsoft.com/france/technet/sysinternals/ProcessesAndThreads/PsList.mspx
Pour tuer un processus, c'est PSKill : http://www.microsoft.com/france/technet/sysinternals/ProcessesAndThreads/PsKill.mspx

Pour contre, pour le monde Unix, la commande ne diffère pas de mac : ps ax | grep "JavaApplicationStub" > /Volumes/Test.txt
Il faut juste mettre à la place le chemin qui t'intéresse. Si tu montes ta clé USB dans /mnt/USBkey, ça donnera : ps ax | grep "JavaApplicationStub" > /mnt/USBkey/Test.txt
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3171
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci pour ces infos  smiley
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Pages: [1]   Go Up
Jump to: