Изменить существующую библиотеку pyWinhook - PullRequest
0 голосов
/ 22 апреля 2020

Я нашел эту библиотеку: https://pypi.org/project/pyWinhook/. Эта библиотека является расширением другой известной библиотеки под названием PyHook. Я очень активно использую первую библиотеку для своего личного проекта, но я бы хотел добавить в нее некоторые расширения или код.

На сайте pyWinhook, в разделе скачать файлы, я нашел исходный код. Когда я открыл его, есть разные файлы, один из которых - HookManager.py. Этот файл имеет различные функции, которые я хотел бы изменить.

Чтобы проиллюстрировать, что я хочу, ниже вы увидите извлечение одной функции, которую я хочу изменить, в данном случае KeyboardSwitch. В этой функции я добавлю некоторые к коду, чтобы получить больше информации в качестве параметров. Однако я не вижу, как эта библиотека получает эти аргументы, чтобы добавить, например, переменную, которая показывает мне, какое поле было набрано пользователем, и другую полезную информацию.

  def KeyboardSwitch(self, msg, vk_code, scan_code, ascii, flags, time, hwnd, win_name):
    '''
    Passes a keyboard event on to the appropriate handler if one is registered.

    @param msg: Message value
    @type msg: integer
    @param vk_code: The virtual keycode of the key
    @type vk_code: integer
    @param scan_code: The scan code of the key
    @type scan_code: integer
    @param ascii: ASCII numeric value for the key if available
    @type ascii: integer
    @param flags: Flags associated with the key event (injected or not, extended key, etc.)
    @type flags: integer
    @param time: Time since the epoch of the key event
    @type time: integer
    @param hwnd: Window handle of the foreground window at the time of the event
    @type hwnd: integer
    '''
    event = KeyboardEvent(msg, vk_code, scan_code, ascii, flags, time, hwnd, win_name)
    func = self.keyboard_funcs.get(msg)

Я прочитал, что оригинальный Pyhook - это C библиотека. Я раньше не работал с этим делом, поэтому я не знаю, как я могу изменить эту библиотеку для своих целей.

У меня нет достаточного опыта в этом, поэтому я очень благодарен, если вы можете объяснить мне с некоторыми детали, потому что я новичок в этом топи c.

...