Que pouvez-vous faire avec COM/ActiveX en Python?
J'ai lu qu'il est possible d'automatiser des rapports mensuels de Crystal Reports COM/ActiveX. Je ne suis pas avancé pour comprendre ce que c'est ou ce que vous pouvez même le faire avec elle.
Je fais aussi beaucoup de travail avec Excel et il semble que vous aussi utiliser COM/ActiveX interface avec elle.
Quelqu'un peut m'expliquer comment cela fonctionne, et peut-être donner un bref exemple?
- Vous pouvez également trouver des conseils utiles ici : timgolden.me.uk/python/win32_how_do_i.html il est facile de s'adapter à tout type d'application.
Vous devez vous connecter pour publier un commentaire.
Vous devez d'abord installer le merveilleux pywin32 module.
Il offre de prise en charge COM. Vous devez exécuter le
makepy
utilitaire. Il est situé àC:\...\Python26\Lib\site-packages\win32com\client
. Sur Vista, il doit être exécuté avec les droits admin.Cet utilitaire va vous montrer tous disponibles à des objets COM. Vous pouvez trouver le vôtre et il va générer un wrapper python pour cet objet.
Le wrapper est un module python généré dans le
C:\...\Python26\Lib\site-packages\win32com\gen_py
dossier. Le module contient l'interface des objets COM. Le nom de ce fichier est la COM id unique. Si vous avez de nombreux fichiers, il est parfois difficile de trouver le bon.Après que vous avez juste à appeler le droit de l'interface. C'est magique 🙂
Un petit exemple avec excel
Vous pouvez en principe faire l'équivalent de la liaison tardive. Donc tout ce qui est exposé par l'intermédiaire de IDispatch est capable d'être consommé.
Voici un code que j'ai écrit ce week-end pour obtenir une image à partir d'un périphérique twain via Windows Image Acquisition 2.0 et placer les données dans quelque chose que je peux pousser dans un gtk en fonction de l'INTERFACE utilisateur.
C'est pas joli, mais il fonctionne. Je dirais, c'est l'équivalent de ce que vous avez à écrire en VB.
Voici une solution qui crée un fichier et ajoute de la valeur à une cellule:
La façon de recevoir des événements ActiveX dans python 3