如何检测Windows 10是否处于平板模式

4
我正在寻找一种方法来检测Windows 10是否处于平板模式。请注意,这并不是查询用户是否拥有平板电脑的问题-可以通过 GetSystemMetrics(SM_CONVERTIBLESLATEMODE)解决。在我的情况下,上述函数总是返回0-无论Win10是否处于平板模式。似乎此线程没有结论, 表明没有WinAPI调用能够检测平板模式。我希望这不是事实,因为操作系统如果处于平板模式或非平板模式,则会发布不同的WM消息。在平板模式下,不会发送WM_SHOWWINDOW消息,这意味着如果Windows 10处于平板模式,则需要以不同方式处理应用程序的启动。我可以将当前在接收到 WM_SHOWWINDOW 消息后触发的代码移动到其他位置(刚刚在调用 ShowWindow 之后),但然后我会得到具有空参数的 WM_DPICHANGED 消息。

GetSystemMetrics()函数(https://learn.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-getsystemmetrics)能否通过SM_TABLETPC参数进行帮助? - Michael Chourdakis
2
使用UserInteractionMode - Raymond Chen
1个回答

2

1
嗯,这个没有文档或支持。请使用支持的API:UserInteractionMode。 - Raymond Chen
博客中@RaymondChen和Windows文档页面上@RitaHan提到的示例似乎是我正在寻找的。但是,在实现它们之后,对于uiViewSettingsInterop->GetForWindow,我收到了“不允许指向不完整类型的指针”消息,尽管我已经包含了UIViewSettingsInterop.h。我的NTDDI_VERSION为0x0603(目标为Win8.1及以上)。我是否漏掉了一些明显的东西? - Dan
1
IUIViewSettingsInterop 支持 Windows 10 及以上版本。请注意,IUIViewSettingsInterop 的定义位于 #if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD) 内。 - Raymond Chen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接