Пример #1
0
def notify(signal):
    if not isRegistered():
        return
    with winreg.CreateKey(
            winreg.HKEY_CURRENT_USER,
            r"Software\Microsoft\Windows NT\CurrentVersion\AccessibilityTemp"
    ) as rkey:
        winreg.SetValueEx(rkey, APP_KEY_NAME, None, winreg.REG_DWORD, signal)
    keys = []
    # The user might be holding unwanted modifiers.
    for vk in winUser.VK_SHIFT, winUser.VK_CONTROL, winUser.VK_MENU:
        if winUser.getAsyncKeyState(vk) & 32768:
            keys.append((vk, False))
    keys.append((0x5B, True))  # leftWindows
    keys.append((0x55, True))  # u
    inputs = []
    # Release unwanted keys and press desired keys.
    for vk, desired in keys:
        input = winUser.Input(type=winUser.INPUT_KEYBOARD)
        input.ii.ki.wVk = vk
        if not desired:
            input.ii.ki.dwFlags = winUser.KEYEVENTF_KEYUP
        inputs.append(input)
    # Release desired keys and press unwanted keys.
    for vk, desired in reversed(keys):
        input = winUser.Input(type=winUser.INPUT_KEYBOARD)
        input.ii.ki.wVk = vk
        if desired:
            input.ii.ki.dwFlags = winUser.KEYEVENTF_KEYUP
        inputs.append(input)
    winUser.SendInput(inputs)
Пример #2
0
 def sendChars(self, chars):
     inputs = []
     for ch in chars:
         input = winUser.Input()
         input.type = winUser.INPUT_KEYBOARD
         input.ii.ki = winUser.KeyBdInput()
         input.ii.ki.wScan = ord(ch)
         input.ii.ki.dwFlags = winUser.KEYEVENTF_UNICODE
         inputs.append(input)
     winUser.SendInput(inputs)
Пример #3
0
    def sendChars(self, chars: str):
        """Sends the provided unicode characters to the system.
		@param chars: The characters to send to the system.
		"""
        inputs = []
        for ch in chars:
            for direction in (0, winUser.KEYEVENTF_KEYUP):
                input = winUser.Input()
                input.type = winUser.INPUT_KEYBOARD
                input.ii.ki = winUser.KeyBdInput()
                input.ii.ki.wScan = ord(ch)
                input.ii.ki.dwFlags = winUser.KEYEVENTF_UNICODE | direction
                inputs.append(input)
        winUser.SendInput(inputs)
	def sendChars(self, chars: str):
		"""Sends the provided unicode characters to the system.
		@param chars: The characters to send to the system.
		"""
		inputs = []
		for ch in chars:
			for direction in (0,winUser.KEYEVENTF_KEYUP): 
				input = winUser.Input()
				input.type = winUser.INPUT_KEYBOARD
				input.ii.ki = winUser.KeyBdInput()
				input.ii.ki.wScan = ord(ch)
				input.ii.ki.dwFlags = winUser.KEYEVENTF_UNICODE|direction
				inputs.append(input)
		winUser.SendInput(inputs)
		focusObj = api.getFocusObject()
		if keyboardHandler.shouldUseToUnicodeEx(focusObj):
			# #10569: When we use ToUnicodeEx to detect typed characters,
			# emulated keypresses aren't detected.
			# Send TypedCharacter events manually.
			for ch in chars:
				focusObj.event_typedCharacter(ch=ch)