我正在开发一个表面书的功能,可以控制设备的旋转锁。这包括打开/关闭旋转锁,以及一起禁用它。
为了澄清,我这里的问题不是关于打开/关闭旋转锁,这会使图标变成蓝色或中性。
我指的是启用/禁用旋转锁,这会使图标变成灰色或中性。
我已经阅读过几个Microsoft文档和在线搜索结果,但它们似乎都集中在旋转锁的on/off状态,而不是启用/禁用状态。
SetAutoRotation
,它可以工作,但只可以打开/关闭旋转锁,而不是启用/禁用。Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AutoRotation
以编程方式操作旋转锁图标,将ValueName SlateEnable
设置为0,但它需要重新启动设备才能应用。SHChangeNotify
可以用来刷新桌面,但我无法让它正常工作。我使用了值SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_FLUSH, IntPtr.Zero, IntPtr.Zero)
,如果这表明我是否做错了。是否有任何Win32 API特性可以控制旋转锁的启用/禁用状态,或者是否有任何API可以立即应用windows注册表修改?我卡住了。任何帮助都将不胜感激。
发布于 2020-06-12 16:32:16
在提交了关于这一点的向MSDN论坛提出相同的问题之后,大家的共识似乎是,没有一个API公开出“旋转锁定”图标的能力。然而,无文档的SetAutoRotation
API可以切换“旋转锁定”图标的开关。
https://stackoverflow.com/questions/62287927
复制相似问题