Hello,

Delphi XE2.

Cette commande fonctionnait très bien avec Open Office (ou "OO") d'installé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
CreateOleObject('com.sun.star.ServiceManager');

En remplaçant OO par Libre Office (ou "LO" => remplaçant de "OO"), ça plantouille, j'obtiens ce message, lors de l'exécution de cette même commande :



J'ai l'impression que LO attend un paramètre du style --invisible (cf écran ci dessus), or via la commande createOleObj pas évident de lui passer un paramètre (juste une supposition).

Sinon autre piste, je vais tenter une réinstall de "LO" avec l'option de chargement au démarrage du système. En effet, j'ai fait un test : en lançant moi même LO (sans ouvrir de document), alors la commande problématique fonctionne... Mais ce n'est pas une solution viable d'un point de vue utilisateurs...

Si vous avez des tuyaux...

Merci.

EDIT 1 : même avec l'option de chargement au démarrage du système, ça fait toujours pareil... même message qui s'affiche que celui de l'image ci dessus (et ensuite ça plante, j'avais oublié de le préciser...).

Donc pour le moment seules solutions possibles :

1) repasser à Open Office (comme quoi les vieux pots...)

2) lancer Libre Office avant l'appel au createOleObject (en testant s'il est pas déjà lancé bien sûr, solution pourrie s'il en est...)

merchi à cheux qui chauront m'aider (pas fachile de bien prononcher avec deux dents en moins)


EDIT 2 : en lançant depuis le menu exécuter la commande : "soffice --invisible", puis en lançant mon application, alors le createOleObject fonctionne, c'est donc bien ce que je pensais : avec Libre Office il faut qu'une instance tourne déjà en mémoire pour que le createOleObject fonctionne... on se rapprocherait donc d'une solution 2) améliorée (vu que l'instance lancée est invisible).