示例#1
0
    def __call__(self, action):
        #0: disable, 1: enable, 2: toggle, 3: getStatus
        try:
            hwnd = FindWindow(FFDSHOW_REMOTE_CLASS, None)
        except:
            raise self.Exceptions.ProgramNotRunning

        if action == 0 or action == 1:
            SendMessage(hwnd, self.plugin.mesg, WPRM_SETPARAM_ID, self.value)
            SendMessage(hwnd, self.plugin.mesg, WPRM_PUTPARAM, action)
            return action

        oldValue = SendMessage(hwnd, self.plugin.mesg, WPRM_GETPARAM2, self.value)

        if action == 2:
            if oldValue:
                newValue = 0
            else:
                newValue = 1
            SendMessage(hwnd, self.plugin.mesg, WPRM_SETPARAM_ID, self.value)
            SendMessage(hwnd, self.plugin.mesg, WPRM_PUTPARAM, newValue)
            return newValue

        if action == 3:
            return oldValue
示例#2
0
    def __call__(self, action, value):
        #0: set to, 1: next, 2: previous 3: get value

        try:
            hwnd = FindWindow(FFDSHOW_REMOTE_CLASS, None)
        except:
            raise self.Exceptions.ProgramNotRunning

        if action == 3:
            return SendMessage(hwnd, self.plugin.mesg, WPRM_GETPARAM2, self.value)

        if action == 1 or action == 2:
            value = SendMessage(hwnd, self.plugin.mesg, WPRM_GETPARAM2, self.value)
            if self.options.has_key(value):
                entry = self.options[value]
                if action == 1:
                    value = entry[3]
                else:
                    value = entry[4]
            else:
                if action == 1:
                    value += 1
                else:
                    value -= 1


        SendMessage(hwnd, self.plugin.mesg, WPRM_SETPARAM_ID, self.value)
        SendMessage(hwnd, self.plugin.mesg, WPRM_PUTPARAM, value)
        return value
示例#3
0
    def __call__(self, value=0):
        try:
            hwnd = FindWindow(FFDSHOW_REMOTE_CLASS, None)
        except:
            raise self.Exceptions.ProgramNotRunning

        SendMessage(hwnd, self.plugin.mesg, WPRM_SETPARAM_ID, self.value)
        SendMessage(hwnd, self.plugin.mesg, WPRM_PUTPARAM, value)
示例#4
0
    def SendFfdshowMessage(self, wParam, lParam=0):
        try:
            hwnd = FindWindow(FFDSHOW_REMOTE_CLASS, None)
        except:
            raise self.Exceptions.ProgramNotRunning

        return SendMessage(hwnd, self.mesg, wParam, lParam)
示例#5
0
    def __call__(self):
        try:
            hwnd = FindWindow(FFDSHOW_REMOTE_CLASS, None)
        except:
            raise self.Exceptions.ProgramNotRunning

        return SendMessage(hwnd, self.plugin.mesg, WPRM_GETPARAM2, self.value)
示例#6
0
 def __call__(self):
     hwnd = PhonerWin()
     if hwnd:
         if self.plugin.CheckWorkerThread(
         ):  #maybe try "IsConnected" (DVBviewer plugin like)
             self.plugin.workerThread.Stop()
             sleep(1)
         SendMessage(hwnd, WM_SYSCOMMAND, SC_CLOSE, 0)
示例#7
0
 def OnChangeClipboardChain(self, dummyHwnd, mesg, wParam, lParam):
     # if the next clipboard viewer window is closing, repair the chain.
     if wParam == self.hwndNextViewer:
         self.hwndNextViewer = lParam
         if self.hwndNextViewer == self.hwnd:
             self.hwndNextViewer = None
     elif self.hwndNextViewer:
         SendMessage(self.hwndNextViewer, mesg, wParam, lParam)
     return 0
示例#8
0
    def __call__(self):
        try:
            hwnd = FindWindow(FFDSHOW_REMOTE_CLASS, None)
        except:
            raise self.Exceptions.ProgramNotRunning

        cds = COPYDATASTRUCT()
        cds.dwData = COPY_GET_PRESETLIST
        SendMessage(hwnd, WM_COPYDATA, eg.messageReceiver.hwnd, addressof(cds))
        return cds
示例#9
0
    def __call__(self, action, value):
        #0: set to, 1: change by, 2: get value
        try:
            hwnd = FindWindow(FFDSHOW_REMOTE_CLASS, None)
        except:
            raise self.Exceptions.ProgramNotRunning

        if action == 2:
            return SendMessage(hwnd, self.plugin.mesg, WPRM_GETPARAM2, self.value)

        if action == 1:
            value += SendMessage(hwnd, self.plugin.mesg, WPRM_GETPARAM2, self.value)

        value = max(self.options[0], value)
        value = min(self.options[1], value)

        SendMessage(hwnd, self.plugin.mesg, WPRM_SETPARAM_ID, self.value)
        SendMessage(hwnd, self.plugin.mesg, WPRM_PUTPARAM, value)
        return value
示例#10
0
    def __call__(self, preset):
        try:
            hwnd = FindWindow(FFDSHOW_REMOTE_CLASS, None)
        except:
            raise self.Exceptions.ProgramNotRunning

        cds = COPYDATASTRUCT()
        cds.dwData = COPY_SETACTIVEPRESET
        cds.lpData = cast(c_wchar_p(preset), PVOID)
        cds.cbData = (len(preset) + 1)*2
        return SendMessage(hwnd, WM_COPYDATA, eg.messageReceiver.hwnd, addressof(cds))
示例#11
0
def GetStatusBarText(hwnd, buf_len=128):
    """If success, return statusbar texts like list of strings.
    Otherwise return either '>>> No process ! <<<' or '>>> No parts ! <<<'.
    Mandatory argument: handle of statusbar.
    Option argument: length of text buffer."""

    PAGE_READWRITE = 4
    PROCESS_VM_OPERATION = 8
    PROCESS_VM_READ = 16
    PROCESS_QUERY_INFORMATION = 1024
    SB_GETPARTS = 1030
    SB_GETTEXTW = 1037
    MEM_COMMIT = 4096
    MEM_RELEASE = 32768

    pid = GetWindowThreadProcessId(hwnd)[1]
    process = _kernel32.OpenProcess(
        PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_QUERY_INFORMATION,
        False, pid)
    res_val = [
        '>>> No process ! <<<',
    ]
    if process <> 0:
        parts = SendMessage(hwnd, SB_GETPARTS, 0, 0)
        partList = []
        res_val = [
            '>>> No parts ! <<<',
        ]
        if parts > 0:
            remBuf = _kernel32.VirtualAllocEx(process, None, buf_len,
                                              MEM_COMMIT, PAGE_READWRITE)
            locBuf = create_unicode_buffer(buf_len)
            for item in range(parts):
                SendMessage(hwnd, SB_GETTEXTW, item, remBuf)
                _kernel32.ReadProcessMemory(process, remBuf, locBuf, buf_len,
                                            None)  #copy remBuf to locBuf
                partList.append(locBuf.value)
            res_val = partList
            _kernel32.VirtualFreeEx(process, remBuf, 0, MEM_RELEASE)
    return res_val
示例#12
0
 def __call__(self):
     hwnds = FindSplash()
     if len(hwnds) != 0:
         SendMessage(hwnds[0], WM_CLOSE, 0, 0)
     else:
         self.PrintError(self.plugin.text.text1)
示例#13
0
 def OnDrawClipboard(self, dummyHwnd, mesg, wParam, lParam):
     wx.CallAfter(eg.Notify, "ClipboardChange")
     # pass the message to the next window in the clipboard viewer chain
     if self.hwndNextViewer:
         SendMessage(self.hwndNextViewer, mesg, wParam, lParam)