检测设备是否用作笔记本电脑或平板电脑

时间:2014-01-30 21:33:58

标签: c#

有许多新设备,如Vaio Duo,Vaio Flip,XPS 12,联想瑜伽等,这些都是超极本/平板电脑可转换设备,我如何检测其当前运行的外形尺寸?我知道Vaio Duo根据它是用作笔记本电脑还是用作平板电脑来切换性能模式,所以应该有某种方式,无论是通过pinvoke还是别的。

4 个答案:

答案 0 :(得分:5)

在Windows中,要直接检查您的系统是否处于平板电脑(或#34; slate")模式,您可以拨打GetSystemMetrics(SM_CONVERTIBLESLATEMODE)。有关执行此操作的示例应用的讨论,请查看https://software.intel.com/en-us/articles/how-to-write-a-2-in-1aware-application

除了检查启动时,如果模式更改,您应该能够收到WM_SETTINGCHANGE消息,其中"ConvertibleSlateMode"LPARAM。但在某些情况下,我们已经看到此消息丢失了。因此,最好采用手动方式在您的应用中强制进行模式更改。

答案 1 :(得分:1)

你的程序不应该对所有形状因子都一样,所以那里的形状因素并不重要。

如果您确实需要访问该传感器,请查看此信息,这可能会对您有所帮助。 http://archive.msdn.microsoft.com/WindowsAPICodePack/Release/ProjectReleases.aspx?ReleaseId=4906

这将为您提供所有传感器。

Microsoft.WindowsAPICodePack.Sensors.SensorManager.GetAllSensors();

答案 2 :(得分:1)

我今天一直在努力。所以我决定创建一个包装器,因为我没有找到它。我专注于通用便携式类库(因为监视器中使用了调度程序),但我可以移植到...

这是:

https://github.com/daemun/DeviceExtCapabilitiesUniversal

答案 3 :(得分:0)