python:win32api监视Ctrl+c和Esc是否按下

📚博客主页:knighthood2001
公众号:认知up吧 (目前正在带领大家一起提升认知,感兴趣可以来围观一下)
🎃知识星球:【认知up吧|成长|副业】介绍
❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️
🙏笔者水平有限,欢迎各位大佬指点,相互学习进步!

需求分析

当按下 Esc 键时退出,但如果只按下了 Ctrl+C 而没有按下 Esc 键,则不退出循环。

这个需求,使用场景还是很广泛的。

代码

import win32api
import win32con
import time

# 定义变量用于判断是否按下了 Ctrl+C 和 Esc 键
ctrl_c_pressed = False
esc_pressed = False

try:
    print("按下 Ctrl+C 或 Esc 键来测试...")
    while not esc_pressed:
        # 获取键盘状态,检查 Ctrl+C 和 Esc 键是否被按下
        if win32api.GetAsyncKeyState(ord('C')) and win32api.GetAsyncKeyState(win32con.VK_CONTROL):
            ctrl_c_pressed = True
            print("Ctrl+C 被按下")

        # 检查 Esc 键是否被按下
        if win32api.GetAsyncKeyState(win32con.VK_ESCAPE):
            esc_pressed = True
            print("Esc 键被按下,准备退出...")
        time.sleep(0.1)  # 在此处可以执行其他任务
except KeyboardInterrupt:
    print("手动中断")

print("程序结束")

运行结果如下:
在这里插入图片描述

讲解

在循环中,首先检查是否按下了 Ctrl+C 键。win32api.GetAsyncKeyState(ord('C'))win32api.GetAsyncKeyState(win32con.VK_CONTROL) 分别检查是否按下了 C 键和 Ctrl 键。如果同时按下了 C 和 Ctrl 键,则 ctrl_c_pressed 被设置为 True,并打印相应的消息。

同时,代码也检查是否同时按下了 Esc 键,如果是,则立即退出循环。

结语

大家可以换成其他键,这个功能使用还是很常见的。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

knighthood2001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值