ActiveXObect aus VBA einbinden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
oldfellow
User
Beiträge: 5
Registriert: Montag 29. Oktober 2007, 22:20

Montag 29. Oktober 2007, 22:44

Hallo,

ich habe eine ActiveX-Bibliothek für VBA (*.dll). Diese möchte ich gerne in mein Python Projekt integrieren.
erste Frage: Kann ich das programm dann auch unter Linux nutzen, oder kann die dll da nicht importiert werden?

zweite Frage: Wie kann folgende Zuweisung in Python nachbauen?
Der Namesraum heiß "OPCIO"
Die Klasse "IOPCServer"
hier ein beispiel aus VBA

Code: Alles auswählen

Dim Server As IOPCServer
Set Server = CreateObject("ServerName") 
Die "CreateObject" Funktion scheint eine VBA Funktion zu sein, sie wird zumindest nicht aus meiner dll importiert.

Vielleicht finden sich hier ja ein paar VBA oldies, mir selbst ist das eher fremd, da ich mich bisher an C# gehalten habe.
Jedoch möchte ich für dieses rel. kleine Projekt Python testen, zumal das Projekt plattform unabhängig laufen soll.

Vielen Dank für eure Hilfe
Grüße
BlackJack

Dienstag 30. Oktober 2007, 00:34

ActiveX, VBA, DLL und *plattformunabhängig*!? So eine DLL kann man natürlich nur unter Windows nutzen.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Dienstag 30. Oktober 2007, 07:42

oldfellow hat geschrieben:ich habe eine ActiveX-Bibliothek für VBA (*.dll). Diese möchte ich gerne in mein Python Projekt integrieren.
Hallo oldfellow!

ActiveX ist wie BlackJack schon schrieb eine Windows-Technik. Das läuft nicht unter anderen Betriebssystemen. Unter Linux vielleicht mit "Wine" http://de.wikipedia.org/wiki/WINE_Is_Not_an_Emulator aber wenn dann nur mit größeren Anstrengungen und einem Kunden nicht zumutbar.

Unter Windows kannst du so auf ActiveX-Komponenten zugreifen:

Code: Alles auswählen

import win32com
import win32com.client

server = win32com.client.dynamic.Dispatch('OPCIO.IOPCServer')
Dazu brauchst du noch das Paket "pywin32", welches du dir hier http://sourceforge.net/projects/pywin32/ besorgen kannst.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten