[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] win11,批处理命令修改注册表,不重启或者注销,如何立即生效?

本帖最后由 ygqiang 于 2024-11-29 00:23 编辑

win11,批处理命令修改注册表,不重启或者注销,如何立即生效?

下面的命令,运行后不能马上生效,系统注销后才可以。
  1. @echo off & setlocal enabledelayedexpansion
  2. echo 代码开始
  3. echo 设置-蓝牙和其他设备-鼠标-滚动方向:向下移动时向上滚动
  4. reg add "HKEY_CURRENT_USER\Control Panel\Mouse" /f /v "ReverseMouseWheelDirection" /t REG_DWORD /d 1
  5. ping 127.0.0.1 -n 1 >nul 2>nul
  6. cls
  7. shutdown -l -f
  8. echo下面的代码,win11环境下设置无效。
  9. rem 关闭Windows外壳程序explorer
  10. taskkill /f /im  explorer.exe
  11. RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
  12. rem 重启Windows外壳程序explorer
  13. start /wait explorer.exe
复制代码

回复 9# Five66


默认管理员模式运行的

TOP

回复 8# ygqiang


    用管理员身份运行 ,还是不行就不懂了

TOP

回复 7# Five66
  1. @echo off & setlocal enabledelayedexpansion
  2. echo 代码开始
  3. echo 设置-蓝牙和其他设备-鼠标-滚动方向:向下移动时向上滚动
  4. reg add "HKEY_CURRENT_USER\Control Panel\Mouse" /f /v "ReverseMouseWheelDirection" /t REG_DWORD /d 1
  5. pause
  6. ping 127.0.0.1 -n 1 >nul 2>nul
  7. cls
  8. :: 环境变量更新即时有效
  9. :: 这个写法是关键!!'"Environment"',另外,不能直接用0值,只能用[UIntPtr]::Zero,其他形式的写法可能都不行
  10. powershell (Add-Type '[DllImport(\"user32.dll\")]^public static extern IntPtr SendMessageTimeout(IntPtr hWnd, uint Msg, UIntPtr wParam, string lParam, uint fuFlags, uint uTimeout,  out UIntPtr lpdwResult);' -Name a -Pas)::SendMessageTimeout([IntPtr]0xffff, 0x1a, [UIntPtr]::Zero, '"Environment"', 2, 5000, [ref] [uintptr]::zero)
  11. pause
复制代码
运行后没效果。不能马上生效,还是得注销系统。

TOP

回复 5# ygqiang


    直接复制那链接里1楼的代码 ,放到bat修改完注册表后面就行

TOP

使用设备管理器或者PnPUtil命令重启一下鼠标试试

TOP

回复 4# Five66


   谢谢,ps调win32 api广播个WM_SETTINGCHANGE 消息
如何嵌入到bat代码里?

TOP

试试用ps调win32 api广播个WM_SETTINGCHANGE 消息
参考
http://www.bathome.net/thread-69026-1-17.html

TOP

czjt1234 发表于 2024-11-25 10:35



    试了下,好像不行啊

TOP


QQ 20147578

TOP

返回列表