如何通过编程将Windows 11 22H2从平板模式切换为桌面模式?
问题:实现联想Yoga 7i自动切换至Windows 11桌面模式的编程方案
我的联想Yoga 7i笔记本默认以平板模式启动,导致桌面/任务栏图标过大,还出现其他UI适配问题。
安装并运行联想专属服务Lenovo Yoga Mode Control for Windows(YMC.EXE)可解决此问题,但该程序因CPU占用过高而广受吐槽。
我已将YMC在Windows服务管理器中设置为Manual(手动)模式,每次重启系统后,都需要在管理员控制台执行net start ymc && net stop ymc来手动启停YMC,以此将系统切回桌面模式。
我需要一种编程实现方式,模拟YMC切换Windows 11至桌面模式的功能,将其封装为小型工具。
目前仅找到一个相关方案,其中用到了未公开的ITabletModeController接口,代码示例如下:
var pSP = (IServiceProvider)Activator.CreateInstance(Type.GetTypeFromCLSID(CLSID_ImmersiveShell)); var pTMC = (ITabletModeController)pSP.QueryService(typeof(ITabletModeController).GUID, typeof(ITabletModeController).GUID); if (pTMC != null) { // 0 = Desktop, 1 = Tablet int nMode = 0; int nRet = pTMC.GetMode(ref nMode); nRet = pTMC.SetMode(nMode==0?1:0, 4); }
但我尝试该方案后没有效果。
内容的提问来源于stack exchange,提问作者noseratio
相关产品推荐
相关产品推荐

