Jump to content

Python und COM-Events


nativityplay82

Recommended Posts

Hallo Leute,

 

hat von Euch jemand Erfahrung mit Python und der COM-Schnittstelle.

 

Mit folgendem Coding versuche ich einige der Events abzufangen.

 

Bisher wird durch

self.mastercom = Dispatch("DVBViewerServer.DVBViewer")

der DVBViewer gestartet. Mit

self.mastercom.SendCommand(111)

lasse ich das OSD-Menü anzeigen. Doch keiner der Events wird abgefangen. Bin echt ratlos:

mport wx

import os
import win32com
import pythoncom

from win32api import RegOpenKeyEx, RegQueryValueEx, FormatMessage
from win32con import CREATE_NEW_CONSOLE, HKEY_CURRENT_USER
from win32process import CreateProcess, STARTUPINFO
from win32event import WaitForInputIdle
from win32com.client import DispatchWithEvents, Dispatch
from win32com.client.CLSIDToClass import RegisterCLSID
from pythoncom import GetActiveObject, com_error
from threading import Timer
from wx.lib.intctrl import IntCtrl


#-------------------------------------------------------------------------------



#-------------------------------------------------------------------------------

class DVBViewerEvents(eg.PluginClass):
   def __init__(self):
       pass

       class EventHandler:
           def __init__(self2):
               self.TriggerEvent("Init des Eventhandlers")

           def onOSDWindow(WindowID):
               self.TriggerEvent("WindowID")

           def OnQuit(self2):
               self.TriggerEvent("Event")

           def onDVBVClose(self2):
               self.TriggerEvent("Event")

           def onControlChange(WindowID, ControlID):
               self.TriggerEvent(WindowID)

           def OnChannelChange(ChannelNr):
               self.TriggerEvent(ChannelNr)

           def onSelectedItemChange():
               self.TriggerEvent("ItemChange")

       self.EventHandler = EventHandler
       self.TriggerEvent("Zuordnung erfolgt")

   def __start__(self, hugo):
       #try:
       if self.EventHandler is None:
           self.TriggerEvent("der event handler hat noch keinen plan")
       self.TriggerEvent("def start ausführen")
       self.mastercom = Dispatch("DVBViewerServer.DVBViewer")
       self.comOSD = DispatchWithEvents(self.mastercom.OSDItem, self.EventHandler)
       self.comObj = DispatchWithEvents(self.mastercom.Events, self.EventHandler)
       if self.comObj is None:
           self.TriggerEvent("wo zur hölle ist das com?")
       self.mastercom.SendCommand(111)
       #except:
       #    raise eg.Exception("Can't connect to YARD server!")
       #self.comObj.Visible = 1
       #self.isEnabled = True

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...