相关疑难解决方法(0)

检测笔记本电脑盖关闭和打开

是否可以检测笔记本电脑的盖子何时打开或关闭?从我所读到的,这是不可能的,但是SO已经帮助我完成了不可能的事情.

我发现的唯一可能是正确的方向是MSDN博客文章,关于报告电源按钮所需的IOCTL.操作系统调用它们是否有可能"嗅"这些?

我正在使用VB.NET,但会接受任何语言的建议.感谢您的时间和建议.

编辑:我的软件将(最终)覆盖盖子关闭时发生的操作(基于用户偏好),因此不能选择关闭盖子时通常发生的暂停和其他操作.

.net pinvoke winapi ioctl

26
推荐指数
3
解决办法
9734
查看次数

检测笔记本电脑盖是否关闭/集成屏幕是否已关闭

是否有Windows API来检测笔记本电脑盖是否关闭(=集成的笔记本电脑屏幕是否关闭)?


已经提出了"相同"的问题:
获取当前的笔记本电脑盖状态

虽然(自我)接受的答案依赖于移除集成屏幕"设备",但盖子关闭时.但这并不是所有笔记本电脑都会发生的.有些屏幕保持屏幕"可用"(即使实际上没有显示任何内容),即使盖子关闭也是如此.这意味着Windows桌面仍然会在关闭的屏幕上延伸(如果"多个显示"设置设置为"扩展这些显示").

我还没有确定,是否可以配置此行为或是否特定驱动程序:
从Windows桌面删除已关闭的笔记本电脑屏幕

但即使在这样的系统上,操作系统也知道盖子关闭,因为它可以关闭/睡眠机器.并播放通知(WM_POWERBROADCAST):
检测笔记本电脑盖关闭和打开


背景:我有一个应用程序从同一个显示器开始,最后一次关闭.如果在集成的笔记本电脑屏幕上关闭并且下次启动应用程序时关闭盖子(因为用户现在正在使用外部显示器),我的应用程序将从现在不可见的集成笔记本电脑屏幕开始.

因此,我想检测盖子是否关闭,并将应用程序强制到外部显示器上.

所以我正在寻找一种方法来检测,如果盖子关闭.或者为了检测某个特定屏幕关闭的方式(什么是更清洁的解决方案).

windows winapi multiple-monitors monitor

9
推荐指数
1
解决办法
1965
查看次数

标签 统计

winapi ×2

.net ×1

ioctl ×1

monitor ×1

multiple-monitors ×1

pinvoke ×1

windows ×1