Python Block键盘/鼠标输入

低音先生

我目前正在尝试编写一个简短的脚本,该脚本会在用户观看且不会干预时进行人力滚动(打开youtube链接)。我设法打开一个字母一个字母地缓慢插入链接,现在试图阻止用户输入。我尝试使用ctypes导入来阻止所有输入,运行脚本,然后再次取消阻止,但是它不会以某种方式阻止输入。我刚刚收到我的RuntimeError消息。我该如何解决,使输入被阻止?提前致谢!这是代码:

import subprocess
import pyautogui
import time
import ctypes
from ctypes import wintypes

BlockInput = ctypes.windll.user32.BlockInput
BlockInput.argtypes = [wintypes.BOOL]
BlockInput.restype = wintypes.BOOL

blocked = BlockInput(True)

if blocked:
    try:
        subprocess.Popen(["C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",])
        time.sleep(3)
        pyautogui.write('www.youtube.com/watch?v=DLzxrzFCyOs', interval= 0.5)
        pyautogui.hotkey('enter')
    finally:
        unblocked = BlockInput(False)
else:
    raise RuntimeError('Input is already blocked by another thread')
约翰·史肯

您可以使用键盘模块阻止所有键盘输入,并使用鼠标模块不断移动鼠标,以防止用户移动鼠标。

有关更多详细信息,请参见以下链接:

https://github.com/boppreh/keyboard

https://github.com/boppreh/mouse

这会阻塞键盘上的所有键(150足够大以确保所有键都被阻塞)。

#### Blocking Keyboard ####
import keyboard

#blocks all keys of keyboard
for i in range(150):
    keyboard.block_key(i)

通过不断将鼠标移动到位置(1,0),可以有效地阻止鼠标移动。

#### Blocking Mouse-movement ####
import threading
import mouse
import time

global executing
executing = True

def move_mouse():
    #until executing is False, move mouse to (1,0)
    global executing
    while executing:
        mouse.move(1,0, absolute=True, duration=0)

def stop_infinite_mouse_control():
    #stops infinite control of mouse after 10 seconds if program fails to execute
    global executing
    time.sleep(10)
    executing = False

threading.Thread(target=move_mouse).start()

threading.Thread(target=stop_infinite_mouse_control).start()
#^failsafe^

然后是您的原始代码(不再需要if语句和try / catch块)。

#### opening the video ####
import subprocess
import pyautogui
import time

subprocess.Popen(["C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",])
time.sleep(3)
pyautogui.write('www.youtube.com/watch?v=DLzxrzFCyOs', interval = 0.5)
pyautogui.hotkey('enter')


#### stops moving mouse to (1,0) after video has been opened
executing = False

只是一些注意事项:

  1. 鼠标移动很难从程序外部停止(执行时基本上不可能关闭程序,尤其是在键盘也被阻塞的情况下),这就是我放入故障保险柜的原因,它可以停止将鼠标移至(1,0)10秒后。
  2. (在Windows上)Control-Alt-Delete确实允许打开“任务管理器”,然后可以从此处强制停止该程序。
  3. 这不会阻止用户单击鼠标,有时可能会阻止完整键入YouTube链接(即可以打开新标签页)

在此处查看完整版本的代码:

https://pastebin.com/WUygDqbG

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用键盘和鼠标 Python 模块在文件中正确存储用户输入(键盘、鼠标)?

来自分类Dev

使用python宏发送键盘/鼠标输入以保持目标窗口背景

来自分类Dev

在python中从键盘输入

来自分类Dev

多个键盘和鼠标输入

来自分类Dev

如何使用python模拟键盘输入

来自分类Dev

Windows拒绝检测鼠标/键盘输入

来自分类Dev

通过python中的键盘输入中断循环

来自分类Dev

键盘输入(通过Pynput)和python中的线程

来自分类Dev

如何在Python 2.7中阻止键盘输入?

来自分类Dev

如何通过键盘输入关闭python图形?

来自分类Dev

验证键盘输入仅支持 Python 中的单词

来自分类Dev

禁用Unix上的键盘和鼠标输入(在X下)

来自分类Dev

VNC:控制台不接受任何键盘/鼠标输入

来自分类Dev

Citrix Reciever忽略了鼠标和键盘输入

来自分类Dev

升级到16.10后键盘和鼠标输入问题

来自分类Dev

鼠标和键盘停止工作,键盘输入上的Num锁定闪烁

来自分类Dev

嵌套的if语句,干净的代码,并且是Python风格的,带有控制器/键盘输入

来自分类Dev

键盘快捷键不允许输入Python Gtk 3

来自分类Dev

使用Python的键盘库将输入存储为字符串

来自分类Dev

关于Python键盘输入编码的快速简单问题

来自分类Dev

带键盘输入的Raspi Autostart Python3脚本?

来自分类Dev

使用键盘输入从python运行可执行文件

来自分类Dev

在简单的python代码中使用键盘输入产生语法错误

来自分类Dev

Python控制台GUI在获取键盘输入的同时进行更新

来自分类Dev

鼠标和键盘挂起

来自分类Dev

想要将键盘输入添加到我的计算器。还隐藏鼠标光标?

来自分类Dev

在java awt或swing中,无论鼠标在哪里,如何安排键盘输入?

来自分类Dev

如何在日期输入中区分鼠标选择和键盘事件

来自分类Dev

如何使“ BlockInput On / Off”仅阻止键盘输入而不阻止鼠标

Related 相关文章

  1. 1

    如何使用键盘和鼠标 Python 模块在文件中正确存储用户输入(键盘、鼠标)?

  2. 2

    使用python宏发送键盘/鼠标输入以保持目标窗口背景

  3. 3

    在python中从键盘输入

  4. 4

    多个键盘和鼠标输入

  5. 5

    如何使用python模拟键盘输入

  6. 6

    Windows拒绝检测鼠标/键盘输入

  7. 7

    通过python中的键盘输入中断循环

  8. 8

    键盘输入(通过Pynput)和python中的线程

  9. 9

    如何在Python 2.7中阻止键盘输入?

  10. 10

    如何通过键盘输入关闭python图形?

  11. 11

    验证键盘输入仅支持 Python 中的单词

  12. 12

    禁用Unix上的键盘和鼠标输入(在X下)

  13. 13

    VNC:控制台不接受任何键盘/鼠标输入

  14. 14

    Citrix Reciever忽略了鼠标和键盘输入

  15. 15

    升级到16.10后键盘和鼠标输入问题

  16. 16

    鼠标和键盘停止工作,键盘输入上的Num锁定闪烁

  17. 17

    嵌套的if语句,干净的代码,并且是Python风格的,带有控制器/键盘输入

  18. 18

    键盘快捷键不允许输入Python Gtk 3

  19. 19

    使用Python的键盘库将输入存储为字符串

  20. 20

    关于Python键盘输入编码的快速简单问题

  21. 21

    带键盘输入的Raspi Autostart Python3脚本?

  22. 22

    使用键盘输入从python运行可执行文件

  23. 23

    在简单的python代码中使用键盘输入产生语法错误

  24. 24

    Python控制台GUI在获取键盘输入的同时进行更新

  25. 25

    鼠标和键盘挂起

  26. 26

    想要将键盘输入添加到我的计算器。还隐藏鼠标光标?

  27. 27

    在java awt或swing中,无论鼠标在哪里,如何安排键盘输入?

  28. 28

    如何在日期输入中区分鼠标选择和键盘事件

  29. 29

    如何使“ BlockInput On / Off”仅阻止键盘输入而不阻止鼠标

热门标签

归档