Windows每次开机键盘无法使用,需要重新拔插键盘USB接口的解决方案

每次开机键盘无法使用,需要重新拔插键盘USB接口的解决方案

问题简介

每次开机,键盘都无法使用,需要将键盘线从主机的USB口拔出,再重新插入才能正常使用。

解决方案

win10系统中进入“系统设置”界面,windows其他版本可能要进入控制面板,本文以win10系统为例,如下截图所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过上图一系列选择后,进入“控制面板——硬件与声音——电源选项”界面,根据当前使用的电源计划,选择对应的“更改计划设置”按钮。比如当前的电池计划是“平衡(推荐)”,则选择其后的“更改计划设置”按钮,如下图所示。
在这里插入图片描述
在弹出的“更改计划的设置”界面,点击“更改高级电源设置”按钮,如下图所示。
在这里插入图片描述
在弹出的“电源选项”对话框中,找到“USB设置”选项,将其中的“USB选择性暂停设置”改为“已禁用”状态,如下所示。
在这里插入图片描述
点击对话框右下方的“应用”按钮,即可生效。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 pywin32 库来进行 USB回调。具体步骤如下: 1. 导入必要的库 ``` import win32gui import win32con import win32api ``` 2. 定义回调函数 ``` def usb_callback(hwnd, msg, wparam, lparam): if msg == win32con.WM_DEVICECHANGE: if wparam == win32con.DBT_DEVICEARRIVAL: print('USB入') elif wparam == win32con.DBT_DEVICEREMOVECOMPLETE: print('USB出') ``` 3. 注册回调函数 ``` # 获取当前进程的ID current_process_id = win32api.GetCurrentProcessId() # 创建消息过滤器 filter = win32gui_struct.PackDWORD(win32gui_struct.MakeLong(win32con.DBT_DEVICEARRIVAL, win32con.DBT_DEVICEREMOVECOMPLETE)) # 注册回调函数 win32gui.RegisterDeviceNotification(hwnd, filter, win32con.DEVICE_NOTIFY_WINDOW_HANDLE) ``` 4. 循环消息 ``` # 循环消息 while True: msg = win32gui.GetMessage(None, 0, 0) win32gui.TranslateMessage(msg) win32gui.DispatchMessage(msg) ``` 其中,`hwnd` 是窗口句柄,可以使用 `win32gui.CreateWindowEx` 创建窗口来获取。具体代码可以参考下面的例子: ``` import win32gui import win32con import win32api import win32gui_struct def usb_callback(hwnd, msg, wparam, lparam): if msg == win32con.WM_DEVICECHANGE: if wparam == win32con.DBT_DEVICEARRIVAL: print('USB入') elif wparam == win32con.DBT_DEVICEREMOVECOMPLETE: print('USB出') # 创建窗口 hwnd = win32gui.CreateWindowEx( win32con.WS_EX_LEFT, # 扩展风格 win32gui_struct.EmptyString, # 类名 win32gui_struct.EmptyString, # 标题 win32con.WS_DISABLED, # 样式 0, 0, 0, 0, # 位置和大小 None, None, None, None) # 父窗口、菜单、实例句柄、参数 # 获取当前进程的ID current_process_id = win32api.GetCurrentProcessId() # 创建消息过滤器 filter = win32gui_struct.PackDWORD(win32gui_struct.MakeLong(win32con.DBT_DEVICEARRIVAL, win32con.DBT_DEVICEREMOVECOMPLETE)) # 注册回调函数 win32gui.RegisterDeviceNotification(hwnd, filter, win32con.DEVICE_NOTIFY_WINDOW_HANDLE) # 循环消息 while True: msg = win32gui.GetMessage(None, 0, 0) win32gui.TranslateMessage(msg) win32gui.DispatchMessage(msg) ``` 注意,由于该程序需要不断循环消息,因此需要在程序退出前手动结束循环,否则程序将一直运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值