大多数IBM(和一些戴尔)笔记本电脑都有内置的加速度计,以防止在突然倒下时发生移动的部件,但是我无法find一个标准化的Windows API来访问这些数据。 我假设每个制造商都会提供一个驱动程序来与传感器连接。
如果笔记本电脑意外跌落或突然受到另一物体(即超过某个加速度阈值)的影响,大多数知名笔记本电脑供应商都会使用加速计停放硬盘驱动器磁头。 例如,我的HP有“HP 3D DriveGuard”。 然而,这项技术是嵌入式的低级别,即使操作系统没有加载,它似乎也能工作,所以我猜想它是在BIOS中。 我想这只是一个ACPI的方式来启用或禁用此技术。 因此,即使在使用标准化传感器API的Windows 7上,也不能像智能手机那样使用标准加速度计。 也许将来如果市场需要的话(但我不这么认为)。
这对所有的制造商来说都是行不通的,但是经过多次的搜索(我一直想要这个功能),我发现有人为惠普笔记本的加速度计写了一个驱动程序包装 。 如果您的笔记本电脑支持HP 3D DriveGuard或HP ProtectSmart,则此驱动程序应让加速度计显示在Windows传感器列表中。
在惠普笔记本电脑上进行测试,安装顺利。 示例程序有效,但响应速度很慢。 我不认为这对于高精度需求(比如游戏)来说是行得通的,但是如果你只需要一些较慢的方向数据,它可能会起作用。
请注意,这是通过将加速计暴露给Windows传感器API来工作的。 传感器API提供了访问任何类型传感器的标准方法,无论实际安装的硬件如何。 有关MSDN上的Windows传感器平台的更多信息。