有没有办法在 Windows 10 设备上以编程方式启用/禁用(灰色)操作中心中的旋转锁定,而无需重新启动?

     2023-02-19     31

关键词:

【中文标题】有没有办法在 Windows 10 设备上以编程方式启用/禁用(灰色)操作中心中的旋转锁定,而无需重新启动?【英文标题】:Is there a way to enable/disable (grey out) the Rotation Lock in Action Center programmatically on a Windows 10 device without rebooting? 【发布时间】:2020-09-28 22:40:36 【问题描述】:

我正在 Surface Book 上开发一项可以控制设备旋转锁定的功能。这涉及打开/关闭旋转锁定,以及将其全部禁用。

澄清一下,我的问题不是关于打开/关闭旋转锁定,这会使图标变为蓝色或中性。

我说的是启用/禁用旋转锁定,这会使图标变为灰色或中性。

我已经阅读了一些微软文档和在线搜索结果,但它们似乎都关注旋转锁的开/关状态,而不是启用/禁用状态。

我知道 SetAutoRotationPreferences 的 UWP 功能,但这似乎只在平板电脑模式(而非桌面模式)下锁定方向,并且不会影响旋转锁定图标状态。 我知道未记录/不受支持的 Win32 API SetAutoRotation,它只能打开/关闭旋转锁定,而不是启用/禁用。 我知道旋转锁定图标可以使用 Windows 注册表键 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 注册表修改?我被困住了。任何帮助将不胜感激。

【问题讨论】:

您为什么要这样做?当你的应用失去焦点、退出或崩溃时,你会恢复它吗?您正在更改您不拥有的其他应用程序的行为,并且当用户第一次尝试执行某些旋转(或不旋转)的事情时,他们预计会逃避您的应用程序,永不回头。 @1201ProgramAlarm 由于专有原因,我无法完全披露,但我只想澄清一下,我从未说过这是一个应用程序。我正在探索 Windows 功能并想知道这是否可以完成,同时表明我已经做了一些研究。如果答案是“不,它不能完成”,那么该信息对我将有助于我跟进后续步骤。 【参考方案1】:

在提交same question to the MSDN forums 关于此问题后,似乎一致认为没有 API 公开了使“旋转锁定”图标变灰的能力。但是,未记录的 SetAutoRotation API 可以打开和关闭“旋转锁定”图标。

【讨论】:

在 Windows 中以编程方式设置正在“收听”的音频设备

...并选中“收听此设备”,以便通过扬声器播放音频信号。有没有办法设置这个,也许是Win32API中的一些变量,所以可以在不进入设置对 查看详情

有没有办法在 Windows 上的 C++ 中以编程方式设置环境路径?

】有没有办法在Windows上的C++中以编程方式设置环境路径?【英文标题】:IsthereawaytosettheenvironmentpathprogrammaticallyinC++onWindows?【发布时间】:2010-10-0615:06:38【问题描述】:有没有办法以编程方式(C++)设置全局Windows路径环境变量... 查看详情

有没有办法以编程方式为 iOS 上的 3rd 方应用程序获取 UI 层次结构?

】有没有办法以编程方式为iOS上的3rd方应用程序获取UI层次结构?【英文标题】:IsthereawaytogetprogrammaticallyUIhierarchyfor3rdpartyapplicationoniOS?【发布时间】:2013-11-0523:46:10【问题描述】:我正在寻找一种以编程方式获取3rd方应用程序UI... 查看详情

有没有办法在 Windows 中使用 C# 以编程方式禁用磁盘驱动器上的写入缓存策略?

】有没有办法在Windows中使用C#以编程方式禁用磁盘驱动器上的写入缓存策略?【英文标题】:IsthereawaytodisablethewritebehindcachingpolicyonadiskdriveprogrammaticallyusingC#inwindows?【发布时间】:2020-03-0420:08:30【问题描述】:我需要删除我们服... 查看详情

在 OS X 上以编程方式打开通知中心

...mmaticallyonOSX【发布时间】:2015-03-1312:51:31【问题描述】:有没有办法从Cocoa应用程序打开OSX上的通知中心?我们尝试启动通知中心应用程序,但这不起作用。我们的应用没有沙盒,所以我们可以做任何需要的事情。【问题讨论】... 查看详情

在 iOS 13 上以编程方式滚动 SwiftUI ScrollView

...自动向上或向下滚动视图。我处于必须支持iOS13的情况。有没有办法,甚至是一种hacky方式,以编程方式在i 查看详情

在运行 Windows IoT 的 RPi3 上以编程方式接受入站蓝牙配对请求

】在运行WindowsIoT的RPi3上以编程方式接受入站蓝牙配对请求【英文标题】:AcceptinboundBluetoothpairingrequestprogrammaticallyonanRPi3runningwindowsIoT【发布时间】:2018-02-0215:25:21【问题描述】:我正在使用RPi3来控制一台能够与android和其他蓝牙... 查看详情

在 Windows 上以编程方式降速硬盘?

】在Windows上以编程方式降速硬盘?【英文标题】:SpinDownHardDiskProgrammaticallyonWindows?【发布时间】:2011-07-1900:47:19【问题描述】:如何请求Windows以编程方式降低硬盘转速?我可以调用任何用户模式函数(或调用内核模式函数或发... 查看详情

Appium:如何在开始测试运行 appium-testng 之前使用 java 在 aws 设备场设备上以编程方式创建 google 帐户

】Appium:如何在开始测试运行appium-testng之前使用java在aws设备场设备上以编程方式创建google帐户【英文标题】:Appium:Howtocreategoogleaccountprogrammaticallyonawsdevicefarmdevicesusingjavabeforestartingtestrunforappium-testng【发布时间】:2016-10-2908:18:38... 查看详情

在 Android 设备上以编程方式获取 CPU 时钟速度?

】在Android设备上以编程方式获取CPU时钟速度?【英文标题】:ObtainCPUclockspeedprogrammaticallyonAndroidDevice?【发布时间】:2021-12-1921:19:46【问题描述】:有人有代码sn-p给出Android设备上的CPU时钟速度吗?原因我编写了一个WearOS应用程序... 查看详情

在 Windows 上以编程方式获取每个进程的磁盘 io 统计信息?

】在Windows上以编程方式获取每个进程的磁盘io统计信息?【英文标题】:Programmaticallygettingper-processdiskiostatisticsonWindows?【发布时间】:2010-12-1100:38:33【问题描述】:我想显示一个进程列表(Windows、C++)以及它们从磁盘读取和写... 查看详情

Python/Windows 10 - 有没有办法防止 Windows 10 计算机在 Python 中进入睡眠状态?

】Python/Windows10-有没有办法防止Windows10计算机在Python中进入睡眠状态?【英文标题】:Python/Windows10-IsthereawaytopreventaWindows10computerfromgoingtosleepinPython?【发布时间】:2020-09-0204:15:44【问题描述】:有没有办法防止Windows10计算机在Pytho... 查看详情

windows10系统window键失灵,没有反应

 今天键盘的的Window键(win键)按了没反应,某度一圈全是它的垃圾营销号文章,没卵用。。最后在微软官方社区支持找到解决方案。也建议大家遇到系统问题到微软社区去寻求帮助,毕竟人家是专业。解决办法一、打开设备... 查看详情

如何使用 C 在 Linux 上以编程方式杀死进程树

】如何使用C在Linux上以编程方式杀死进程树【英文标题】:HowtokillaprocesstreeprogrammaticallyonLinuxusingC【发布时间】:2013-03-1912:10:10【问题描述】:我正在尝试编写一个生成子进程的函数,让它运行一段时间,如果它还没有完成,则... 查看详情

如何在 Catalina (10.15) 上以编程方式启动键盘?

】如何在Catalina(10.15)上以编程方式启动键盘?【英文标题】:HowcouldIlaunchkeyboardprogrammaticallyonCatalina(10.15)?【发布时间】:2020-02-1911:41:51【问题描述】:我想在macOSAPP上通过NSAppleScript启动屏幕(虚拟)键盘。以下代码在macOSCatalina(1... 查看详情

Windows 10 音频输入设备设置存储在哪里?

】Windows10音频输入设备设置存储在哪里?【英文标题】:WhereareWindows10audioinputdevicesettingsstored?【发布时间】:2016-04-2218:12:33【问题描述】:我正在开发一个应用程序,该应用程序需要以编程方式禁用麦克风的独占模式,以便它始... 查看详情

如果 Itunes:Keep iTunes Folder Organized 在 Windows 上以编程方式设置,我该如何解决

】如果Itunes:KeepiTunesFolderOrganized在Windows上以编程方式设置,我该如何解决【英文标题】:HowcanIworkoutifItunes:KeepiTunesFolderOrganizedissetprogrammaticallyonWindows【发布时间】:2013-07-3105:08:36【问题描述】:如果Itunes:Preferences:Advanced:KeepiTunesF... 查看详情

在 android 4.0 上以编程方式设置 *** 连接

...2012-06-0520:50:46【问题描述】:我正在以编程方式在Android设备上设置***连接。对于使用OS2.3.5及之前的设备,我成功地做到了这一点(我使用反射来访问隐藏类)。但是在android4.0中,他们摆脱了旧的类并改用***Service类。我认为最 查看详情