[perl] lancer un process windows en perl

lancer un process windows en perl [perl] - Perl - Programmation

Marsh Posté le 04-11-2005 à 14:47:35    

Bonjour,  
 
Comme certains l'auront certainement remarqué, je me lance dans perl assez activement (depuis un an, je suis fan de ce langage ...)
 
Mon probleme actuellement, est que j'aimerais savoir comment il serait possible de lancer un process windows (par exemple iexplore) le plus proprement possible depuis un script perl.
Sous linux, j'ai pas de probleme (fork, backquotes ..) mais sous win, j'ai du mal a voir comment c'est faisable ... et la doc n'est comme qui dirait pas foisonnante concernant l'environnement windows - vu comme j'ai galérer pour compiler pp sous win .. -
 
Merci.

Reply

Marsh Posté le 04-11-2005 à 14:47:35   

Reply

Marsh Posté le 04-11-2005 à 15:21:41    

pour lancer les truc purement windows genre IE, excel ou mediaplayer tu peux utiliser les OLE. Il y a meme des modules qui gere ca facielment sur CPAN (par exemple une version de Mechanize speciale pour controler IE).
 
Ensuite si tu veux lancer un process tu peux utiliser le module Win32::Process, ou plus simplement la fonction system qui marche tres bien. Par contre si tu veux pouvoir le lancer en tache de fond (ie continuer ton prog pendant que l'autre tourne) tu a une option speciale dans system (et qui ne marche qu'avec activeperl à ma connaissance) qui est de mettre un 1 en premier argument:
system(1, "commande..." );

Reply

Marsh Posté le 04-11-2005 à 15:35:30    

je vais voir pour utiliser la fonction system ....
Merci bien ..

Reply

Marsh Posté le 04-11-2005 à 16:02:49    

enfait, j'avais oublié d'échapper le \ de c:\... ie : system("c:\\Program..." )
 
Ca roule maintenant ...

Reply

Marsh Posté le 04-11-2005 à 16:37:21    

euh ..
ce probleme est resolu, mais je profite de ce thread pour poser une autre question :
 
Toujours sous windows, sur un PC qui n'a PAS internet (donc pas de CPAN), si j'ai besoin du module, par exemple IO::Socket::Multicast, il me suffit de copier le source Multicast.pm récupéré sur CPAN dans c:\perl\lib\IO\Socket ??
Par besoin d'enregistrer la lib ou autre chose ???
Parce qu'il me dit "can't locate loadable object for module IO::Socket::Multicast in @INC .."
 
 
edit: si ca peut aider quelqu'un que le probleme pourrait intereser, il se trouve qu'en introduisant une erreur dans le code Multicast.pm, le compilateur la signal.
des que l'erreur est de nouveau corrigée, il ne trouve pas de module chargeable .. ca veut dire quoi ce message?? :/


Message édité par trictrac le 04-11-2005 à 16:52:43
Reply

Marsh Posté le 04-11-2005 à 18:07:02    

Pour le module Multicast il y a du code C à compiler il me semble (les fichiers en .xs), donc la il tourve bien le .pm mais il n'arrive pas à bootstrapper. Et de memoire il marche mal sous windows d'ailleurs.
 
Sinon pour ton probleme tu peux te constituer une copie de CPAN sur CD avec CPAN::Mini

Reply

Marsh Posté le 05-11-2005 à 13:58:39    

merci, je vais voir pour me faire un CD alors .. ca pourrait etre pas mal ...
Merci bien ...

Reply

Marsh Posté le 07-11-2005 à 10:28:39    

Mais bon CD ou pas il te faudra toujours un compilateur pour ce genre de module (exactement comme kand tu est connecté directement à CPAN), et c'est pas toujours simple sous windows

Reply

Marsh Posté le 07-11-2005 à 11:05:25    

et zut ...
en fait, je me sert de ce module juste pour m'abonner au groupe, avec igmp ... il y a moyen de faire ca sans le module la ?

Reply

Marsh Posté le 07-11-2005 à 14:47:35    

à priori non

Reply

Marsh Posté le 07-11-2005 à 14:47:35   

Reply

Marsh Posté le 07-11-2005 à 14:50:03    

je viens de voir que ce module etait dans ppm, donc tu dois pouvoir l'installer depuis la
 
sur ton PC connecté à internet tu l'install avec ppm, ensuite tu copie les .pm dans IO::Socket::Multicast, et puis tu va chercher ce qui est compilé (le code C) dans site/lib/auto/IO/Socket/Multicast et tu le copi sur ton autre machine aussi. Et ca devrait marcher

Reply

Marsh Posté le 07-11-2005 à 17:40:07    

oki, merci ...
je vais essayer ca demain ...
parce que la, j'en chie a mort avec cl.exe et autres joyeusetés ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed