如何让Windows控制台窗口不接受鼠标点击(禁用鼠标输入)

解决Windows控制台快速编辑模式导致Python程序阻塞、卡顿、假死问题 Windows控制台的快速编辑模式是容易被忽略的“坑”,尤其对需要持续运行的Python控制台程序影响较大。手动设置仅能临时解决问题,而通过代码调用Windows API禁用该模式,是最通用、最可靠的方案。上述代码不仅适用于定时输出的场景,也可移植到其他需要持续运行的Windows控制台Python程序中,从根本上避免快速编辑模式导致的程序阻塞问题。 阅读详情
AI摘要

编写控制台应用程序时,鼠标点击控制台窗口会阻塞程序运行。文章介绍了通过设置控制台(CMD)窗口属性来禁止鼠标输入的方法,即打开窗口,右击标题栏选属性,去除“快速编辑模式”勾选。设置后鼠标点击不再影响程序运行,后续还想探索代码控制的方案。

一、简述

在我们编写控制台应用程序时,默认情况下程序的打印输出会在控制台窗口中进行显示,我们在写服务功能时在窗口中会不断打印消息输出,这个时候如果使用鼠标点击了控制台窗口,会阻塞程序的继续运行,导致我们的程序一直卡在那里不执行,这个时候需要我们按下enter键程序才会继续往下运行,就很头疼,有时候需要跑个流程需要运行很长时间,但是由于不小心点击了控制台窗口,导致程序被阻塞了一直没往下运行,白白等了半天时间,要不然就直接就禁止鼠标的输入,防止再次出现这种情况,下面通过很简单的方式来解决这个问题。

二、设置 控制台(CMD) 窗口属性

1、打开控制台窗口,右击标题栏弹出菜单点击属性。

在这里插入图片描述

2、将下方图示红框中的 "快速编辑模式"勾选去除,点击确定,完事。

但是需要注意的是需要提前设置好该属性,然后再运行程序,如果换一台电脑也需要进行此设置,操作虽然简单但是需要手动额外设置,后续再找些资料看看能不能直接通过代码控制,如果有更好解决方案的小伙伴欢迎一起交流。

在这里插入图片描述


设置完属性之后,我们再次运行程序使用鼠标点击打开的控制台窗口,就再也不会出现鼠标点击而停止运行的情况了。

下面是通过QProcess调用python脚本执行倒计时操作的示例:

设置属性前,鼠标点击窗口程序就会暂停运行。

请添加图片描述


设置窗口属性之后,无论鼠标怎么点击,程序依然会继续运行。

请添加图片描述

Windows控制台快速编辑模式导致Python程序假死:原理排查与禁用方案 Windows控制台自带一种名为“快速编辑模式”的默认交互机制,它让用户可以用鼠标框选文本,却可能在不经意间中断控制台的数据读取。当Python程序正在执行input()等待输入或长时间运行日志监控时,一旦鼠标点击或拖选,控制台便会挂起输入处理,程序看似无响应,CPU降为0%,按回车、Ctrl+C都无效——这就是典型的快速编辑模式阻塞问题。通过了解控制台输入模式与SetConsoleMode等系统调用的底层逻辑,可以从代码层面主动禁用该模式,彻底避免假死。该方案适用于命令行工具、爬虫脚本、定时任务等需要稳定 阅读详情

相关推荐

Python程序控制台假死?快速编辑模式QuickEdit的排查与禁用指南

在Windows环境下运行Python脚本或自动化任务时,控制台突然“卡死”是常见故障,背后往往隐藏着操作系统层面的一项历史特性——快速编辑模式(QuickEdit Mode)。该模式由conhost.exe托管,一旦鼠标点击控制台窗口,系统便会进入文本选择状态,挂起stdin输入管道,导致Python进程看似死锁,实则只是控制台输入模式切换引发的伪阻塞。理解这一原理,有助于开发者快速区分程序死锁与IO阻塞,避免误判。通过调用Windows Console API(如GetConsoleMode与SetCo

weixin_30219613的博客 246

把鼠标锁定到窗口中

利用 API 函数ClipCursor来把鼠标锁定到指定的窗口中

Zezese的专栏 1393

C#实现限制鼠标在某一区域工作(附完整源代码)

C#实现限制鼠标在某一区域工作(附完整源代码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 358

设定鼠标限定在窗口内部

由于设定鼠标移动区域的函数需要屏幕坐标,因此我们先取得窗口坐标,然后将窗口坐标转化为屏幕坐标,最后设定范围即可。         设定鼠标光标限制在窗口内容区域的基本代码为: RECT rect; POINT lt, rb; GetClientRect(hwnd, &rect); //取得窗口内部矩形(窗口坐标) //将矩形左上角存入lt中 lt.x = rect.left; lt.y =

On the way 3628

RexUniNLU零样本通用自然语言理解:nlp_deberta_rex-uninlu_chinese-base模型实战解析

本文深入解析了RexUniNLU零样本通用自然语言理解模型(nlp_deberta_rex-uninlu_chinese-base)的实战应用。通过详细的环境配置、模型加载及实战案例,展示了该模型在零样本场景下的强大能力,如实体识别和复杂关系抽取,显著提升NLP任务效率。

weixin_29088655的博客 250

USB2.0信号完整性测试之眼图

名称线缆颜色引脚描述红色绿色白色GND黑色。

qq_53766840的博客 3284

win10命令行禁用和启用电脑键盘

禁用/启用键盘 键盘出现bug的时候(比如像我的一直不停的按着f键),可以通过禁用键盘的方法结束这糟糕的bug。 方法:用管理员方式打开cmd命令行,输入以下代码: sc config i8042prt start= disabled 如果输入不了的话,可以用其他设备将该语句输入txt文档中,再执行该文件 **注意:**执行该命令后需要进行重启才能生效,禁用键盘的同时会禁用触摸板。 启用方法与上...

ZhaoXinai的博客 5172

告别调试烦恼:用Lattice Diamond手把手教你JTAG烧录FPGA(附SRAM/Flash模式详解)

本文详细介绍了使用Lattice Diamond软件进行JTAG烧录FPGA的全流程,包括SRAM临时调试和Flash固化的核心区别。从环境准备、硬件连接到文件准备、烧录模式选择,再到典型问题排查和高级技巧,手把手教你快速掌握FPGA烧录技术,提升开发效率。

weixin_42569329的博客 495

限制鼠标在窗口区域

void ClipC(HWND hwnd) { RECT rt; POINT lt, rb; GetClientRect(hwnd,&rt); lt.x=rt.left; lt.y=rt.top; rb.x=rt.right; rb.y=rt.bottom; ClientToScreen(hwnd,

我是菜鸟我怕谁。。。 1424

MT9V034摄像头学习笔记(一)_mt9v034摄像头循迹代码(1)

函数名称:uint8_t SCB_RegRead(uint8_t Device,uint8_t Address,uint16_t *Data)* 函数名称:uint8_t SCB_RegWrite(uint8 Device,uint8 Address,uint16 Data)* 函数名称:uint8 SCCB_SendByte(uint8 Data)* 函数名称:uint8 SCCB_ReadByte(void)* 修改时间:2018年3月4日。* 修改时间:2018年3月4日。

2401_87555661的博客 907

几率大的网络安全面试题(含答案)

其他篇章:Java校招极大几率出的面试题(含答案)----汇总 本文面试题汇总: 防范常见的 Web 攻击 重要协议分布层 arp协议的工作原理 rip协议是什么?rip的工作原理 什么是RARP?工作原理 OSPF协议?OSPF的工作原理 TCP与UDP区别总结 什么是三次握手四次挥手? tcp为什么要三次握手? dns是什么?dns的工作原理 一次完整的HTTP请求过程 Cookies和ses...

睶 6万+

修改Windows控制台的输入模式GetStdHandle、GetConsoleMode和SetConsoleMode方法

1.禁用快速编辑模式:防止用户鼠标选择文本导致程序阻塞。2.禁用插入模式:统一文本输入行为(通常为覆盖模式)。3.禁用鼠标输入:避免鼠标事件干扰程序逻辑。这段代码通过精细控制控制台输入模式,优化了程序在特定场景下的稳定性和用户体验。理解每个标志的作用及合理使用错误处理机制,是编写健壮控制台应用程序的关键。

weixin_45805339的博客 1056

【深度学习】手把手教你在远程服务器上跑 YOLOv3 相关代码(含环境配置)

这篇文章主要记录了如何配置项目环境以及如何在远程服务器上跑 YOLOv3 模型。

作者正在煮茶中... 2383

windows下设置控制台窗口信息

设置控制台无法编辑 void noedit() { HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE); DWORD mode; GetConsoleMode(hStdin, &mode); mode &= ~ENABLE_QUICK_EDIT_MODE; //移除快速编辑模式 mode &= ~ENABLE_INSERT_MODE; //移除插入模式 mode &= ~ENABLE_MOUSE_INPUT;

Happinessคิดถึง的博客 427

Superpowers:可编程AI协作协议与Skill工程化实践

AI编程正从提示词驱动迈向工程化协作新范式。Superpowers并非传统代码补全工具,而是一套定义清晰、可版本控制、可调试复用的AI协作协议——它将AI能力抽象为带输入校验、执行管道、输出契约和元数据声明的Skill(类DSL构件),再通过状态驱动的Workflow编排实现跨平台、可熔断、含人工Checkpoint的自动化流水线。其核心价值在于解决AI生成代码长期存在的不可复现、不可审计、不可交接三大痛点,支撑OpenAPI转TS、Figma转Vue等高复用场景落地。本文深入解析Skill设计四重契约与P

weixin_31124163的博客 376

2026软考中级-软件设计师笔记(送最新视频教程)

核心口诀:运控存输输(运算器、控制器、存储器、输入、输出)例题(2019年上半年):核心公式:数字签名流程:数字证书作用:死锁4个必要条件:死锁判断公式:处理策略:程序设计语言的四大核心成分:顺序表操作(时间复杂度):链表操作(时间复杂度):核心思想:频率高的字符用短编码,频率低的用长编码 → 最小化总编码长度构造步骤(贪心算法):前提:有序表(升序/降序) 步骤:时间复杂度:O(log₂n) 例:查找中核心思想:用哈希函数将关键字映射到存储位置 哈希冲突:不同关键字映射到同一位置 → 用链地址法或开放定址

36万+

Python脚本在Windows控制台被点击卡死?快速编辑模式是元凶

在Windows系统上运行命令行程序时,控制台的输入输出机制往往被忽视,而它恰恰是导致程序看似卡死的隐性根源。当用户使用鼠标在控制台窗口内点击或拖选文本时,系统会触发默认开启的“快速编辑模式”,使控制台进入文本选择状态,并阻塞后续的写入操作。对于依赖print或日志输出长期运行的任务,这种阻塞会造成Python脚本暂停响应,但CPU占用为零,极易被误判为死锁或崩溃。理解Windows控制台与Console API的交互原理,有助于快速定位这一典型问题。通过修改控制台属性、调整注册表或在代码中主动调用SetC

weixin_34005090的博客 238

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

windows命令行程序被鼠标点击后阻塞

最近写python程序发现双击程序后弹出命令行窗口,如果鼠标不小心点击了窗口,整个窗口处于选择状态,但是程序不继续输出了,根据以往经验知道这是windows10上cmd窗口的选择模式导致的,可以手动解决: 1.点击左上角图标选择属性 2.取消快速编辑和插入模式 如上,命令行窗口就不能通过鼠标选择了,但是每个程序都这么设置有点烦躁,于是就找了找windows控制台模式相关的api,发现如下api SetConsoleMode function - Windows Console | Mic..

youyudexiaowangzi的专栏 2427

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

golang开发-windows平台解决用户不小心选中控制台窗口导致程序暂停运行的问题

解决用户不小心选中控制台窗口导致程序暂停运行的问题

生有涯,知无涯 974

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

c语言禁用键盘,C/C++ 禁用鼠标键盘

不多说,先上代码运行的时候,会弹出”hello,leon”.此功能用低级键盘钩子和低级鼠标钩子实现用到的函数接口:( SetWindowsHookEx)/************************************************/SetWindowsHookEx: (Windows消息处理机制的一个平台)声明:HHOOK WINAPISetWindowsHookEx(...

weixin_30218749的博客 3774

Windows SendInput API详解:系统级模拟键盘鼠标输入

SendInput是Windows操作系统提供的底层输入注入API,属于Windows API体系中的核心人机交互机制。其原理是将结构化输入事件(键盘/鼠标)直接投递至系统输入队列,绕过窗口焦点限制,实现真正的系统级模拟。相比PostMessage等消息级接口,它具备原子性、跨进程兼容性与输入源可标识等技术优势,广泛应用于自动化运维、无障碍辅助、工业软件无人巡检等场景。本文深入解析SendInput的INPUT结构体设计、时间戳控制、dwExtraInfo身份标记及典型边界限制,结合防休眠、组合键模拟、后台

weixin_33798152的博客 390

Windows控制台快速编辑模式导致Python程序假死,如何彻底解决?

在Python命令行程序、脚本或爬虫的开发与部署中,控制台窗口突然无响应、进度条停止刷新、进程看似卡死,是不少开发者都踩过的坑。这类问题往往源于Windows控制台默认开启的“快速编辑模式”——当用户用鼠标单击或拖拽窗口内容时,系统会占用控制台消息循环,使程序对标准输入输出的读写陷入阻塞,从而表现为“假死”。了解这一机制后,通过简单的Esc测试或查看窗口标题栏即可快速确认。工程上,既可在控制台属性中手动关闭,也可通过注册表统一调整,更推荐在Python代码中调用Windows API主动禁用该模式,从而实现

weixin_42116058的博客 195

Windows Server 2016-Windows控制台的新增功能

控制台主机(支持所有字符模式的应用程序的基础代码,包括 Windows 命令提示符、Windows PowerShell 提示符等)已通过几种方式进行更新,以添加各种新功能。控制新功能新功能为默认启用,但可以通过"属性"界面(主要是在"选项"选项卡上)或使用这些注册表项(所有表项都是 HKEY_CURRENT_USER\Console 下的 DWORD 值)打开和关闭每个新功...

weixin_34377065的博客 955

Winpty终极指南:如何在Unix终端中无缝运行Windows控制台程序

你是否曾在Cygwin或MSYS环境中尝试运行Windows控制台程序时遇到输入输出问题?Winpty正是解决这一痛点的终极工具!这个免费的开源软件包为Windows提供了类似Unix pty-master的接口,让你在Unix风格的终端中完美运行CMD、PowerShell等Windows控制台程序。 ## 为什么需要Winpty? 在Windows的Cygwin或MSYS环境中,直接运行W

gitblog_00310的博客 342

python鼠标位置_python – 如何在tkinter窗口中设置鼠标位置

好消息是有一种方法可以做到这一点.中间新闻是它没有很好的记录.坏消息是它只适用于某些平台.另一个中间新闻是你可以在至少某些平台上走出Tk.在Tcl / Tk中执行此操作的方法是生成< Motion>事件与-warp 1.关于此的文档很稀疏,分散在几个不同的页面(从bind开始),但细节描述为here.基本上,就是这样:event generate . -warp 1 -x 50 -y...

weixin_39539733的博客 1269

快速关闭 SystemInformer 鼠标悬停提示窗口:3 步禁用弹窗的完整指南

鼠标一移过进程列表,半透明的提示窗就弹出来盖住内容;点哪个进程,哪个进程的信息就被遮得看不清。如果你被这种干扰烦到,多半是在用 SystemInformer——这款工具能监控系统资源、调试软件、排查可疑进程,但它默认会在鼠标悬停时弹出信息窗。好消息是,几个开关就能让它安静下来。 ## 悬停提示为什么会自己弹出来 SystemInformer 的提示窗(Tool Tips)是它快速展示进程、线程

gitblog_00005的博客 418
上一篇: 关于Win11系统生成dump文件失败的问题
下一篇: QSettings使用笔记
前行中的小猪
前行中的小猪 领域专家: C/C++技术领域 领域专家: C/C++技术领域
博客等级 码龄10年 4万+粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值