Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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()
Ejemplo n.º 7
0
    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
Ejemplo n.º 8
0
    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
Ejemplo n.º 9
0
    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
Ejemplo n.º 10
0
    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)
Ejemplo n.º 11
0
                        '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):
Ejemplo n.º 12
0
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')
Ejemplo n.º 13
0
 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)
Ejemplo n.º 14
0
        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)