随着像Vaio Duo、Vaio Flip、XPS 12、Lenovo Yoga等许多新设备的推出,它们都是超极本/平板电脑可转换设备。那么,我该如何检测它当前正在使用哪种形态?我知道Vaio Duo会根据其用作笔记本电脑还是平板电脑而切换性能模式,因此应该有某种方法,无论是通过PInvoke还是其他方式。
随着像Vaio Duo、Vaio Flip、XPS 12、Lenovo Yoga等许多新设备的推出,它们都是超极本/平板电脑可转换设备。那么,我该如何检测它当前正在使用哪种形态?我知道Vaio Duo会根据其用作笔记本电脑还是平板电脑而切换性能模式,因此应该有某种方法,无论是通过PInvoke还是其他方式。
GetSystemMetrics(SM_CONVERTIBLESLATEMODE)
。有关执行此操作的示例应用程序的讨论,请查看https://software.intel.com/en-us/articles/how-to-write-a-2-in-1aware-application。WM_SETTINGCHANGE
消息,该消息将具有“ConvertibleSlateMode”
作为其LPARAM
。但是,在某些情况下,我们发现此消息丢失了。因此,在应用程序中手动强制更改模式是个好主意。你的程序不应该因为表单因素的不同而工作方式不同,因此无论在哪种表单因素中都不会有影响。
如果确实需要访问该传感器,则可以查看这个链接http://archive.msdn.microsoft.com/WindowsAPICodePack/Release/ProjectReleases.aspx?ReleaseId=4906,这可能会对你有所帮助。
这将获取您所有的传感器。
Microsoft.WindowsAPICodePack.Sensors.SensorManager.GetAllSensors();
我今天一直在做这个项目。因为没有找到合适的包装器,所以我决定创建一个。我专注于通用可移植的类库(因为监视器中使用了调度程序),但我可以进行移植...
下面是: