ocx Datei

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
antimicro
User
Beiträge: 151
Registriert: Sonntag 29. Februar 2004, 16:24

Hi,
ich versuche gerade eine ocx Datei anzusteuern (sagt man das so?). Leider check ich die Doku von win32com nicht so richtig.

Code: Alles auswählen

win32com.client.Dispatch(xxxx)
was sollte da stehen wo meine xxxx jetzt stehen?
greetings
sebi
antimicro
User
Beiträge: 151
Registriert: Sonntag 29. Februar 2004, 16:24

Ich habs rausbekommen...
war allerdings nicht ganz einfach:

- Testcontainer für ActiveX-Steuerelement von Microsoft aufrufen
- das Steuerelement auswählen
- Extras Objectkatalog OLE/COM (kommt man da auch einfacher ran?)
- bei mir dann Controls und das Steuerelement (bei mir TricoderUSB Control)
- in dem Feld ProgID
greetings
sebi
antimicro
User
Beiträge: 151
Registriert: Sonntag 29. Februar 2004, 16:24

allerdings bekomme ich nach dem Aufruf von

Code: Alles auswählen

import win32com.client
import array

fileBuffer = array.array("c"," "*200)
pfileBuffer = fileBuffer.buffer_info()[0]

driver = win32com.client.Dispatch("TrCdr.TrcdrUSB")

driver.GetDataFile(pfileBuffer,1)
folgenden Fehler:

File "C:\Python24\lib\site-packages\win32com\client\dynamic.py", line 79, in _GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
com_error: (-2147221005, 'Ung\xfcltige Klassenzeichenfolge', None, None)
greetings
sebi
antimicro
User
Beiträge: 151
Registriert: Sonntag 29. Februar 2004, 16:24

Hi,
irgendwie komm ich schon wieder nicht weiter. Wie übergebe ich denn der Fkt. GetDataFile einen Zeiger auf den fileBuffer?
Irgendwo hab ich im Forum gelesen das Python Strings immer per call-by-reference übergibt und die Fkt. erwartet natürlich auch einen Zeiger.

Code: Alles auswählen

import win32com.client
import tricoder_wrapper
import array, ctypes

driver = win32com.client.Dispatch("TrCdr_USB.TrcdrUSB")
wrapper = tricoder_wrapper.ITrcdrUSB(driver)

fileBuffer = " "*3000

wrapper.GetDataFile(fileBuffer,-1)
Fehler

File "C:\Python24\lib\site-packages\win32com\client\__init__.py", line 446, in _ApplyTypes_
return self._get_good_object_(
com_error: (-2147352567, 'Ausnahmefehler aufgetreten.', (0, None, None, None, 0, -2147418113), None)
greetings
sebi
Antworten