Python调用Windows系统API库中的MessageBoxTimeout延时自动关闭弹出消息框函数

本文介绍了如何在Python中调用Windows API的MessageBoxTimeoutW函数来创建一个能够延时自动关闭的弹出消息框。通过设置参数,如窗口内容、标题、按钮类型和等待时间,可以实现指定时间后无用户操作则自动关闭消息框的功能。
Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

Python编程中遇到一个需求:弹出一个消息框,供用户选择,等待数秒后,用户没有操作,这个弹出的消息框自动消失,继续执行代码。

我看到网上也有人在询问这个如何弹出延时消息框的问题。

我们知道,Windows系统 API 函数里有一个未公开MessageBoxTimeout函数,就能够实现上面的需求。如何在Python中直接调用它呢?

我查阅资料,找到了使用方法,现分享如下:

import win32gui,win32api,win32con
import ctypes
ret = ctypes.windll.user32.MessageBoxTimeoutW(0,'请问你需要擦皮鞋吗?','询问',win32con.MB_YESNO,0,5000)

if ret==6:
    print('用户选择了是')
elif ret==7:
    print('用户选择了否')
else:
    print(f'用户没有在5秒内作出选择,返回默认值{ret}')


Windows系统的User32.dll库内有两个延时自动关闭弹出消息框函数,名称分别为  MessageBoxTimeoutA  和  MessageBoxTimeoutW (注意字母大小写不能错),第一个仅适用英文操作系统,第二个适用所有语言操作系统。我们用第二个MessageBoxTimeoutW,不要用第一个,否则消息框有中文显示乱码。

MessageBoxTimeoutW函数调用方法如下:

MessageBoxTimeoutA( hwnd, lpText, lpCaption, wtype, wlange,dwtimeout  )
.参数 hwnd, 整数型, , 父窗口句柄,一般设为0
.参数 lpText, 文本型, , 消息窗口内容
.参数 lpCaption, 文本型, , 消息窗口标题
.参数 wtype, 整数型, , 按钮类型
.参数 wlange, 整数型, , 按钮类型,语言ID,一般设为0
.参数 dwtimeout, 整数型, , 毫秒

MessageBoxTimeoutW(父窗口句柄,消息内容,标题,按钮,语言ID,等待时间)

父窗口句柄一般设为0

按钮使用win32con提供的常量,不用记忆

语言ID,我也不太懂有什么大用,都是设为0

等待时间单位为毫秒

效果如下:

 

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值