Slt, Je n'ai pas vraiment lu la discution, mais simplement ce post. J'utilise le WM_CopyData mais je n'ai pas souvenir de pouvoir faire un dialogue avec cela. N'est-ce pas unidirectionnel comme passage de donnée ? C'est-à-dire d'un prog extérieur vers un autre prog.
Pour SkypeTalking, je crains que tu te trompes... A ma connaissance Skype fourni 2 interface qui sont Skype4Com, utilisant le COM, et SkypeConnect utilisant un socket. Apparament SkypeTalking utilise Skype4Py qui est dérivé de Skype4Com. -----Message d'origine----- De : [email protected] [mailto:[email protected]] De la part de QuentinC Envoyé : mardi 26 juin 2012 22:35 À : [email protected] Objet : [progliste] commander 6pad depuis l'extérieur (étai t: Re: Re: luaEditor) Pour répondre à une des questions qui est passée dans cette discussion et qui s'adressait à 6pad. Un des deux Yannick demandait s'il était possible de commander le 6pad à partir d'un autre programme. Pour le moment, ce n'est pas supporté, mais je pourrais l'envisager. La solution à ça n'est pas triviale, il faut faire de l'IPC (inter-process communication). IL y a plusieurs moyens de le faire : 1. COM: sans doute le moyen le plus pratique et le plus puissant pour les clients, c'est ce moyen qui est utilisé par exemple pour les produits office quand vous accédez à un objet word.application, etc. Mais mettre en place un serveur COM n'est pas quelque chose de très facile, et ça condamnerait la portabilité de 6pad ce qui serait énormément dommageable (car un serveur COM doit obligatoirement être inscrit dans la base de registre pour fonctionner) 2. Les sockets réseau. Pas si compliqué à mettre en place, mais je n'ai pas envie d'implanter ça dans 6pad parce que c'est quand même plutôt lourd et ça a plein d'inconvénients dont la synchronisation, la sécurité... c'est à la fois une bonne et une mauvaise solution. 3. Les tubes nommés. Ca a le même genre d'inconvénient que les sockets, mais c'est tout aussi lourd quoique plus sécurisé. Par contre c'est encore plus lent que les sockets... et en plus ça se limite à une orientation flux alors qu'un système par messages/paquets est beaucoup plus appropriée dans ce cas. 4. WM_COPYDATA. Si je décide de faire de l'IPC, je pense que je vais continuer dans cette voie. En fait j'utilise déjà ce système pour empêcher l'ouverture d'une deuxième instance de 6pad avec un fichier déjà en cours d'édition. Donc je pourrais l'étendre pour permettre exécuter un code lua depuis l'extérieur. L'inconvénient de ce système, c'est qu'il est peut-être plus difficile à appréhender que les autres, parce que c'est en fait un système de passage de messages totalement asynchrones utilisant la boucle principale des évènements. Pour envoyer un message WM_COPYDATA, il faut savoir utiliser un minimum l'API windows, pouvoir récupérer un handle sur l'instance de 6pad ouverte, et la fonction SendMessage. Mais je pourrais faire une DLL proxy qui encapsule ça dans des fonctions C importables avec un FFI, p.ex. ctype en python. Le gros avantage, c'est que c'est facile à intégrer dans une application, et que la communication est directe et rapide. Pour info, c'est ce qu'utilise skype talking pour communiquer avec skype par exemple. Progliste : Pour se désinscrire de la liste : mailto:[email protected]?subject=unsubscribe Pour voir les archives de la liste : http://www.mail-archive.com/[email protected]/ Je vous rappelle que les pièces jointe sont activés leur taille est limité à 2 MO Pour accéder aux fichiers de la liste http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr Ou en utilisant la nouvelle page de partage : http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé, je vous répondrez en privé. Progliste : Pour se désinscrire de la liste : mailto:[email protected]?subject=unsubscribe Pour voir les archives de la liste : http://www.mail-archive.com/[email protected]/ Je vous rappelle que les pièces jointe sont activés leur taille est limité à 2 MO Pour accéder aux fichiers de la liste http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr Ou en utilisant la nouvelle page de partage : http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé, je vous répondrez en privé.
