Hallo zusammen,
ich moechte mit Python auf die COM Schnittstelle eines Programmes zugreifen. Ich erzeuge ein Objekt mit:
RTobj = win32com.client.Dispatch("TaiPanRealtime.Application")
und kann dann auch erfolgreich Methoden aufrufen, die fuer dieses Objekt dokumentiert sind.
Mein Problem beginnt, nachdem ich in der Dokumentation gelesen habe, ich soll ein Interface benutzen, welches nicht von RTobj aus erreichbar ist. Der mitgelieferte C# Beispielcode sieht so aus:
TaiPanRealtime tpr = new TaiPanRealtime();
IStamminformationen StammInfo = new StamminformationenClass();
StammInfo.SymbolNr = 78298;
Es wird direkt ein Objekt vom Typ StamminformationenClass erzeugt, ohne das Objekt TaiPanRealtime zu benutzen !?
Wie wuerde eine entsprechende Implementierung in Python aussehen ??
Axel
Frage zur klientseitigen COM Programmierung
@Axel: Geht die C#-Implementierung denn über COM? Wo kommt denn die `StamminformationenClass` her? Kommt die aus einer mitgelieferten Bibliothek?
Ok, hier etwas detailliertere Infos.BlackJack hat geschrieben:@Axel: Geht die C#-Implementierung denn über COM? Wo kommt denn die `StamminformationenClass` her? Kommt die aus einer mitgelieferten Bibliothek?
TaiPan kommt mit Beispielen in C#, die im Visual Studio .Net 2003 geschrieben wurden.
Dem Projekt wurde ein Verweis zur Tai-Pan Realtime Library 1.0 hinzugefuegt. D.h. im Kontextmenu des Solutionexplorers wurde mit Add Reference ein Verweis auf die COM Library hinzugefuegt. In C# wird die dann mit "using TaiPanRTLib;" eingebunden.
Deswegen kann ich auch verstehen das C# mit
IStamminformationen StammInfo = new StamminformationenClass();
ein neues StamminformationenClass Objekt anlegen kann.
Bei Python ist mein einziger Zugang zur COM Library aber das Objekt welches ich von
win32com.client.Dispatch("TaiPanRealtime.Application") zurueckbekomme, oder ?!
Dies entspricht im C# Beispiel der Zeile "TaiPanRealtime tpr = new TaiPanRealtime();".
Die Frage ist, wie kann ich in Python ein StamminformationenClass Objekt anlegen ?
Axel
Das hier hilft vielleicht:
http://www.codeproject.com/KB/COM/pytho ... terop.aspx
Denn dein IDispatch-basierender Ansatz wird denke ich nicht funktionieren.
http://www.codeproject.com/KB/COM/pytho ... terop.aspx
Denn dein IDispatch-basierender Ansatz wird denke ich nicht funktionieren.