Question

Tout d’abord, veuillez m'excuser de toute incohérence dans la mosaïque de cette question. Il en a probablement, mais je ne sais vraiment pas mieux.

Cette question a été soulevée dans le contexte du contrôle d'iTunes via COM à partir de python.

>>> itunes = win32com.client.Dispatch("iTunes.Application")
>>> itunes
<win32com.gen_py.iTunes 1.12 Type Library.IiTunes instance at 0x27248400>
>>> lib = itunes.LibraryPlaylist
>>> lib
<win32com.gen_py.iTunes 1.12 Type Library.IITLibraryPlaylist instance at 0x27249880>

Je voudrais récupérer " IiTunes " dans iTunes et " IITLibraryPlaylist " dans lib. J'ai essayé de taper (itunes) et de taper (lib) mais ils ne font que renvoyer """ et ce n'est pas ce que je recherche.

Merci.

Était-ce utile?

La solution

Malheureusement, je n'ai pas de machine Windows à essayer, mais je pense que itunes .__ class __ est la classe (old_style) de l'objet itunes en question, et lib .__ class __ celui de lib . En regardant l’attribut __ name __ des classes, vous obtiendrez ce que vous désirez.

Malheureusement, il s’agit de classes anciennes (donc type (...) ne fonctionne pas correctement), mais win32com existe depuis longtemps, bien avant la brillante nouvelle- Les classes de style sont nées dans Python 2.2, donc c'est parfaitement compréhensible, je pense; -).

Autres conseils

La principale raison de cette erreur d'attribut est due au fait que votre serveur COM est passé d'une liaison tardive (dynamique) à une liaison anticipée (statique).

  • Dans la liaison tardive, chaque fois qu'une méthode est appelée, l'objet est interrogé pour la méthode et, si elle réussit, l'appel peut être effectué.
  • Dans la liaison anticipée, les informations du modèle d'objet sont déterminées à l'avance à partir des informations de type fournies par l'appel d'objet. La liaison précoce utilise MakePy. En outre, la liaison anticipée est sensible à la casse.

Essayez:

itunes = win32com.client.dynamic.Dispatch("iTunes.Application")

Ceci forcera le serveur COM à mettre en évidence le module dynamique, ce qui ne devrait vous donner que l'objet COM d'iTunes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top