如何判断用户是否使用笔记本电脑?

Ref*_*din 9 .net system winforms

我需要一种方法让我的.Net Winform应用程序检测我的应用程序是否在笔记本电脑或工作站上打开.

我已经看过EnvironmentSystemInformation,但无济于事.会WMI做的伎俩?

谢谢你的方向....


根据要求,我有一个使用合并复制的应用程序,允许我们的用户在会员家中工作.一些使用该程序的人永远不会进入现场,因此只有塔.这是一个仅限工作的应用程序,因此我们的系统在某种程 如同在台式机上没有UPS,也没有笔记本电脑CPU.

我已经设置了我的DAL,以便能够在本地SQL和中央SQL Server之间切换设置.我希望能够根据系统自动设置它.

如果是笔记本电脑那么他们应该指向一个塔,如果一个塔,集中.

这有帮助吗?我故意把它关掉,以免弄乱答案.对于为完成相反的道歉而道歉.

Rob*_*ner 13

由于涉及边缘情况,这是一个非常难以解决的问题.我现在还不知道你的应用程序需要多准确,但这是一个可靠的方法来确定用户是否在一台黑色笔记本电脑上.

Win32_Battery

您可能想看一下EstimatedRunTime.

EstimatedRunTime

Data type: uint32
Access type: Read-only

Estimate in minutes of the time to battery charge depletion under the
Run Code Online (Sandbox Code Playgroud)

如果市电断电,丢失并保持关闭,或笔记本电脑与电源断开,则出现负载情况.此属性继承自CIM_Battery.

您还可以查看:

Win32_PortableBattery

此外,这是一个有趣的讨论类似的问题和处理UPS.

http://forum.bigfix.com/viewtopic.php?pid=19908

特别:

"Microsoft ACPI-Compliant Control Method Battery"
Run Code Online (Sandbox Code Playgroud)

此外,如评论中所述,您必须考虑将笔记本电脑上的用户插入墙上并断开电池连接.

  • 是的,我一直在考虑这个问题.这里的边缘案例可能会导致一些误报/否定.例如,如果用户使用连接到墙壁并且电池断开连接的笔记本电脑,该怎么办?你把它称为笔记本电脑,因为弗莱的家伙说它是吗?或者你把它算作桌面,因为它是如何被使用的?这些是必须在应用程序发布之前决定的设计决策. (2认同)