def setInitCOM(self): #Create COM Objects module = GetModule(CapitalDLL) self.skcenter = CreateObject(module.SKCenterLib, interface=module.ISKCenterLib) self.skreply = CreateObject(module.SKReplyLib, interface=module.ISKReplyLib) self.skquote = CreateObject(module.SKQuoteLib, interface=module.ISKQuoteLib) self.module = module #create com signal Object self.skcenterevents = SKCenterLibEventsHandler() self.skreplyevents = SKReplyLibEventsHandler() self.skquoteevents = SKQuoteLibEventsHandler() #regist to COM Object self.centerConn = GetEvents(self.skcenter, self.skcenterevents) self.replyConn = GetEvents(self.skreply, self.skreplyevents) self.quoteConn = GetEvents(self.skquote, self.skquoteevents) #signals - skcenter self.skcenterevents.ontimer.connect(self.timerkeeping_cb) #signals - skquote self.skquoteevents.onnotifyservertime.connect(self.timerkeeping_cb) self.skquoteevents.onnotifystocklist.connect( self.stocklist_cb, QtCore.Qt.QueuedConnection) self.skquoteevents.onconnection.connect(self.onconnection_cb) self.skquoteevents.onnotifyquote.connect(self.onnotifyquote_cb) self.skquoteevents.onnotifyklinedata.connect( self.onnotifyklinedata_cb, QtCore.Qt.QueuedConnection)
def _create_atlax_window(self): _atl.AtlAxWinInit() hInstance = win32api.GetModuleHandle(None) if self.fullscreen: atl_width = self.width atl_height = self.height elif not self.resizable: atl_width = self.width - NON_RESIZEABLE_OFFSET atl_height = self.height - self.scrollbar_height - NON_RESIZEABLE_OFFSET * 2 else: atl_width = self.width - self.scrollbar_width atl_height = self.height - self.scrollbar_height - VERTICAL_SCROLLBAR_OFFSET self.atlhwnd = win32gui.CreateWindow( "AtlAxWin", "about:blank", win32con.WS_CHILD | win32con.WS_HSCROLL | win32con.WS_VSCROLL, 0, 0, atl_width, atl_height, self.hwnd, None, hInstance, None) # COM voodoo pBrowserUnk = POINTER(IUnknown)() _atl.AtlAxGetControl(self.atlhwnd, byref(pBrowserUnk)) self.browser = wrap(pBrowserUnk) self.browser.RegisterAsBrowser = True self.browser.AddRef() self.conn = GetEvents(self.browser, sink=self)
def __init__(self, handle, bot): self.bot = bot Iwindow = POINTER(IUnknown)() Icontrol = POINTER(IUnknown)() Ievent = POINTER(IUnknown)() res = atl.AtlAxCreateControlEx("YUANTAQUOTE.YuantaQuoteCtrl.1", handle, None, byref(Iwindow), byref(Icontrol), byref(GUID()), Ievent) self.YuantaQuote = GetBestInterface(Icontrol) self.YuantaQuoteEvents = YuantaQuoteEvents(self) self.YuantaQuoteEventsConnect = GetEvents(self.YuantaQuote, self.YuantaQuoteEvents)
def __init__(self, parent=None): super(__class__, self).__init__(parent) #Create COM Object self.skreply = CreateObject(self.module.SKReplyLib, interface=self.module.ISKReplyLib) #create COM Event self.skreplyevents = SKReplyLibEvents() #To regist COM Event to COM Object self.replyConn = GetEvents(self.skreply, self.skreplyevents) #Events self.skreplyevents.onconnect.connect(self.on_onconnect_cb) self.skreplyevents.ondisconnect.connect(self.on_ondisconnect_cb) self.skreplyevents.oncomplete.connect(self.on_oncomplete_cb)
def __init__(self, parent=None): super(__class__, self).__init__(parent) #Create COM Object self.skcenter = CreateObject(self.module.SKCenterLib, interface=self.module.ISKCenterLib) #create COM Event self.skcenterevents = SKCenterLibEvents() #To regist COM Event to COM Object self.centerConn = GetEvents(self.skcenter, self.skcenterevents) self.skcenter.SKCenterLib_SetLogPath(SKLogPath) #Event self.skcenterevents.ontimer.connect(self.on_ontimer_cb)
def __init__(self, *args, **kwargs): atl.AxWindow.__init__(self, "ShockwaveFlash.ShockwaveFlash", *args, **kwargs) pUnk = self.GetControl() #get the Flash interface of the control pFlash = wrap(pUnk) # XXX replace 'wrap' with 'GetBestInterface' #receive events self.flashEvents = GetEvents(pFlash, self) #start the flash movie import os pFlash.LoadMovie(0, os.getcwd() + os.sep + "cow.swf") pFlash.Play()
def test_nondefault_eventinterface(self): sink = EventSink() ie = CreateObject("InternetExplorer.Application") import comtypes.gen.SHDocVw as mod conn = GetEvents(ie, sink, interface=mod.DWebBrowserEvents) ie.Visible = True ie.Navigate2(Flags=0, URL="http://docs.python.org/") import time for i in range(50): PumpWaitingMessages() time.sleep(0.1) ie.Visible = False ie.Quit() self.assertEqual(sink._events, ['BeforeNavigate', 'NavigateComplete']) del ie
def test_default_eventinterface(self): sink = EventSink() ie = CreateObject("InternetExplorer.Application") conn = GetEvents(ie, sink=sink) ie.Visible = True ie.Navigate2(URL="http://docs.python.org/", Flags=0) import time for i in range(50): PumpWaitingMessages() time.sleep(0.1) ie.Visible = False ie.Quit() self.assertEqual(sink._events, ['OnVisible', 'BeforeNavigate2', 'NavigateComplete2', 'DocumentComplete', 'OnVisible']) del ie del conn
def handle_events(self, source, sink=None, interface=None): """Handle events from an ActiveX object. Parameters ---------- source The ActiveX object that emits events. sink The object that handles the events. The `sink` must define methods with the same names as the ActiveX event names. If not specified then uses the calling application instance as the `sink`. interface The interface to use. Returns ------- The connection object. """ cxn = GetEvents(source, sink or self, interface=interface) self._event_connections.append(cxn) return cxn
def __init__(self, parent=None): super(__class__, self).__init__(parent) #Create COM Object self.skquote = CreateObject(self.module.SKQuoteLib, interface=self.module.ISKQuoteLib) #create COM Event self.skquoteevents = SKQuoteLibEvents() #To regist COM Event to COM Object self.quoteConn = GetEvents(self.skquote, self.skquoteevents) #This timer is for quote to request the time server for avoid server disconnect this link self.keeptimer = QtCore.QTimer() self.keeptimer.setInterval(15000) #15 sec self.keeptimer.setSingleShot(False) self.keeptimer.timeout.connect(self.on_timer_timeout_cb) #Events self.skquoteevents.onconnection.connect(self.on_onconnection_cb) self.skquoteevents.onnotifyservertime.connect( self.on_onnotifyservertime_cb) self.skquoteevents.onnotifystocklist.connect( self.on_onnotifystocklist_cb) self.skquoteevents.onnotifyquote.connect(self.on_onnotifyquote_cb)
'w').write('\n'.join(self.data)) self.tickData['time'] = lTimehms // 100 self.tickData['open'] = nClose self.tickData['high'] = nClose self.tickData['low'] = nClose self.tickData['close'] = nClose self.tickData['volume'] = nQty def getData(self): return self.data EventQ = SKQuoteLibEvents() EventR = skR_events() ConnQ = GetEvents(skQ, EventQ) ConnR = GetEvents(skR, EventR) def loginCapitalAccount(): content = open('ID.txt', 'r').read().splitlines() ID = content[0].strip(' ') PW = content[1].strip(' ') print("Login:"******"Connect:", skC.SKCenterLib_GetReturnCodeMessage(skQ.SKQuoteLib_EnterMonitor())) def requestKL(todayString):
if '__main__' in __name__: if len(sys.argv) < 3: print('Usage: %s ID PWD {stock no list}') sys.exit() module = GetModule(CapitalDLL) skcenter = CreateObject(module.SKCenterLib, interface=module.ISKCenterLib) skquote = CreateObject(module.SKQuoteLib, interface=module.ISKQuoteLib) #create com signal Object #skcenterevents = SKCenterLibEvents() skquoteevents = SKQuoteLibEvents() #centerConn = GetEvents(skcenter, skcenterevents) quoteConn = GetEvents(skquote, skquoteevents) res = skcenter.SKCenterLib_Login(sys.argv[1], sys.argv[2]) print('Login: '******'skquote Connect: ', res) waitMessage(10) for no in sys.argv[3:]: if fp is not None: fp.close() filename = CachePath + '/' + no + '.csv' fp = open(filename, 'w')
def __init__(self, npn, parent): self._npn = npn self._parent = parent self._app = CreateObject('iTunes.Application') logger.info('Subscribing to «iTunes» events…') self._connection = GetEvents(self._app, self)
print("Object changed: " + args.Path) def IAgStkObjectRootEvents_OnScenarioBeforeClose(self, this): """Scenario Before Close Event""" print("Scenario before close") def IAgStkObjectRootEvents_OnStkObjectPreDelete(self, this, args): """Object PreDelete Event""" args = args.QueryInterface(STKObjects.IAgStkObjectPreDeleteEventArgs) print("Object pre-delete") print("\tContinue: " + str(args.Continue)) print("\tSender: " + args.Path) ### Testing Event Subscriptions # Attach to STK 12 Application app = GetActiveObject('STK12.Application') root = app.Personality2 # Create EventSink sink = EventSink() # List all Events ShowEvents(root, interface=STKObjects.IAgStkObjectRootEvents) # Sink to all events in the EventSink class connection = GetEvents(root, sink, interface=STKObjects.IAgStkObjectRootEvents) # Defines a timeout necessary for COM PumpEvents(100)