2014-01-30 196 views
3

隨着許多新設備,如Vaio Duo,Vaio Flip,XPS 12,聯想瑜伽等,這些都是超極本/平板電腦可轉換設備,我如何檢測其形式因素目前在?我知道Vaio Duo根據它被用作筆記本電腦還是平板電腦來切換性能模式,所以應該有一些方法,無論是通過pinvoke還是別的。檢測設備是否被用作筆記本電腦或平板電腦

+1

爲什麼這很重要? – abhi

回答

1

不應該你的程序中工作的所有形式的因素是相同的,所以對於它wouldnt不管以何種形式因素存在。

也看看這個,如果你確實需要訪問傳感器那麼這可能會幫助你。 http://archive.msdn.microsoft.com/WindowsAPICodePack/Release/ProjectReleases.aspx?ReleaseId=4906

這會讓你得到你所有的傳感器。

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

就像我之前提到的與duo及其性能模式相似的例子。例如,像音樂播放器這樣的東西可能會選擇在筆記本電腦模式下運行時顯示可視化效果,但是希望在平板電腦模式下禁用它,以減少CPU/GPU的使用量,以便在您持有時保持臨時溫度。此外,這是否已經停產?最後一次更新似乎是從2010年開始的。 – Lunyx

+0

確實有道理,WindowsApiCodePack有什麼好處? –

+0

當前無法訪問我可以測試的機器。我會在下週發現的時候通知你。 – Lunyx

5

在Windows中,直接檢查,如果你的系統是在平板電腦(或「平板」)模式,您都可以撥打GetSystemMetrics(SM_CONVERTIBLESLATEMODE)。有關這樣做的示例應用程序的討論,請查看https://software.intel.com/en-us/articles/how-to-write-a-2-in-1aware-application

除了在啓動時檢查,你應該能夠得到一個WM_SETTINGCHANGE消息,如果模式的改變,這將有"ConvertibleSlateMode"LPARAM。但在某些情況下,我們看到這條消息丟失了。因此,無論如何,手動強制改變應用中的模式是一個不錯的主意。

+0

請注意,此檢查已被破壞/不明確。如果您在不可轉換的設備上使用此設備,它將始終返回'0',即代表指示設備處於「平板/平板電腦」模式的相同代碼。我還沒有找到一個100%可靠的方法來管理這個問題。目前我能做的最好的做法是通過Win32_SystemEnclosure.ChassisTypes上的WMI進行初始篩選,以查看設備是否看起來像可轉換設備,然後使用此指標檢查。 – donovan

+0

您是否知道可以測試模式感知的示例應用程序? –

1

今天我一直在努力。所以我決定創建一個包裝器,因爲我沒有找到。我專注於通用便攜式類庫(因爲在顯示器中使用調度員),但我口......

這裏是:

https://github.com/daemun/DeviceExtCapabilitiesUniversal

+0

非常感謝!這看起來很有希望。我注意到NuGet包沒有指定許可證...... –

相關問題