[Perl] Serveur RPC non disponible pour Win32::OLE.

Serveur RPC non disponible pour Win32::OLE. [Perl] - Perl - Programmation

Marsh Posté le 01-09-2004 à 11:26:09    

Bonjour.
J'ai un programme Perl qui crée un fichier puis, à l'aide de Win32::OLE, l'enregistre comme document Word. Voici la partie correspondante du code :
 
  my $Word = Win32::OLE->new( 'Word.Application', 'Quit' );
  use Win32::OLE;
  use Win32::OLE::Const 'Microsoft Word';
  my $DocumentN = $Word->Documents->Open( { FileName => $fichiernO, Format => wdOpenFormatText } ); # Prévoir l'échec !
  $DocumentN->SaveAs
  (
      { FileName => $fichiernO, FileFormat => wdFormatDocument }
  );
 
  $Word->Quit();
 
Tout va bien si la dernière ligne ($Word->Quit) n'est pas là : le fichier est créé et il a bien le format document Word. (Je suppose que le 'Quit' qui figure dans la création de l'objet $Word rend la commande $Word->Quit() superflue dans le présent programme mais qu'il n'en serait pas forcément de même dans un autre programme.)
En revanche, si on met la dernière ligne, on reçoit le message suivant à la ligne de commande :
 
 Win32::OLE(0.1403) error 0x800706ba: "Le serveur RPC n'est pas disponible"
 in METHOD/PROPERTYGET "Quit" at MonEssaiOLE.pl line 1777
 
J'ai consulté l'index de la documentation html de Active Perl (C:\Perl\html\faq\Windows\ActivePerl-Winfaq12.html), chapitre Using OLE with Perl, mais il n'y est pas question de serveur RPC. Une recherche Google sur "serveur RPC" ne me semble rien fournir qui soit à mon modeste niveau. Il y est question d'un virus Blaster, mais mon Windows XP n'en présente pas les symptômes. Dois-je installer quelque chose pour avoir accès à ce serveur RPC ? Si oui, comment fait-il faire ? Merci d'avance.
Panurge.

Reply

Marsh Posté le 01-09-2004 à 11:26:09   

Reply

Marsh Posté le 01-09-2004 à 13:29:07    

COM/OLE utilise RPC.
Le serveur RPC en question c'est sûrement Word... enfin je pense, ton app Perl étant le client RPC. A moins que ce soit un probleme genre le service RPC désactivé, mais ca m'étonnerais (quasi indispensable, et je vois pas comment ça marcherait au debut).


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 01-09-2004 à 16:39:25    

Merci HelloWorld.
Quelqu'un pourrait-il me dire comment je pourrais savoir si le service RPC est désactivé, et comment je pourrais le réactiver ? Merci d'avance.
P.S. Désolé, je n'avais pas pensé à désactiver ces maudits smilies.
Panurge.

Reply

Marsh Posté le 01-09-2004 à 19:31:41    

Pour les smileys, utilise la balise [code].
Je ne pense pas que le service RPC soit en cause, car il me semble que le désactiver empêche plus ou moins Windows de fonctionner.
clic droit Panneau de config->gérer->services et applications->services : "Appel de procédure distante (RPC)" doit être démarré et en Auto. Mais si tu ne sais pas le faire c'est que visiblement t'y a jamais touché, donc ça devrait être bon.
Je pense que c'est plutot un probleme lié à l'Automation de Word.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 01-09-2004 à 19:53:23    

Merci HelloWorld.
J'ai regardé dans Panneau de configuration/Outils d'administration/Gestion de l'ordinateur/Services et applications/Services et, comme vous le prévoyiez, Appel de procédure distante est démarré et en Auto. Je vais essayer le forum Word de Microsoft. Merci encore.
P.S. Dans mon programme, les "use" viennent évidemment avant le reste. J'ai mal copié-collé.
Panurge.

Reply

Marsh Posté le 02-09-2004 à 10:24:46    

Forum Word c'est peut être pas le meilleur.
=> microsoft.public.word.oleinterop (anglais).


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 02-09-2004 à 16:57:05    

Merci HelloWorld.
Comme vous me le suggérez, j'ai parcouru ce forum anglophone et quelques autres. J'en ai retiré l'impression que beaucoup de gens rencontrent mon problème mais que personne ne peut les aider...
C'est à se demander s'il existe beaucoup de programmes faisant intervenir OLE qui fonctionnent... Merci tout de même.
Panurge.

Reply

Marsh Posté le 02-09-2004 à 17:00:43    

Peut être que Perl n'aide pas à avoir de réponse... Essaye de le faire en VB :D


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Sujets relatifs:

Leave a Replay

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