一键禁用 Ctrl+Alt+Shift+Windows 打开 Office 全局快捷键实用工具

很多使用 Windows的朋友,都很讨厌 Office 的全局快捷键,也就是 "Alt+Ctrl+Shift+Windows" 弹出 Office窗口,想禁用掉。

这个组合键在系统里藏得很深,设置根本关不掉。妥妥的就是个流氓快捷键。

Office 快捷键管理助手就是为了解决这个小问题编写的小工具,本程序使用 AU3 编写。

下载地址:

点此下载 《OfficeHotkeyManager.zip

操作非常简单:

一键屏蔽:点一下"Disable Hotkey",按 "Ctrl+Alt+Windows+Shift" 就不会弹出 Office了。

一键找回:如果想重新用这个快捷键弹出 Office,点一下"Enable Hotkey"就能复原,非常方便。

注意:必须用系统管理员权限运行。

用法:

  1. 以管理员权限启动本程序:
    因为改注册表得有系统最高权限,所以双击打开时,如果弹出"是否允许修改"的UAC安全提醒框,请点"是"允许。
  2. 点击"Enable"或"Disable"启用或禁用快捷键。
  3. 弹出"Success"提示框就搞定了。不用重启电脑,现在你就可以按 "ctrl+alt+windows+shift" 四个键试试,保准没反应。

原理:

这个快捷键本质上是在唤起调用系统里的一个叫 ms-officeapp 的协议。

程序的工作原理很简单:在注册表里把这个协议执行命令给替换劫持了。原本按键是让系统"去开 Office",现在被改成了"去运行 rundll32.exe"。因为这个 rundll32 后面没跟任何命令,所以它跑一下就自动静默退出了,不弹出任何窗口。

结果就是键盘按了,系统响应了,但看起来啥反应都没有。

这个工具只是屏蔽快捷键,不会删掉你的 Word 或 Excel,更不会动你的文档,放心使用。


本程序使用 AU3 编写。

autoit3 复制代码
#NoTrayIcon
#RequireAdmin

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>

Global Const $REG_PATH_HKLM = "HKLM\Software\Classes\ms-officeapp\Shell\Open\Command"
Global Const $REG_PATH_HKCU = "HKCU\Software\Classes\ms-officeapp\Shell\Open\Command"
Global Const $TARGET_VAL = "rundll32.exe"

Local $hMainGUI = GUICreate("Office hotkey Manager", 400, 220)
GUISetFont(10, 400, 0, "Microsoft YaHei")

Local $sDescription = "Description:" & @CRLF & _
"This utility manages the 'Ctrl+Win+Alt+Shift' shortcut." & @CRLF & _
"Enable: Restores the default Office app behavior." & @CRLF & _
"Disable: Shortcut key will not open Office app."
GUICtrlCreateLabel($sDescription, 20, 20, 360, 100)

Local $idBtnAction = GUICtrlCreateButton("Checking Status...", 100, 140, 200, 40)

GUISetState(@SW_SHOW)

_RefreshStatus($idBtnAction)

While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $idBtnAction
_HandleToggle($idBtnAction)
EndSwitch
WEnd

Func _IsDisabled()
Local $sVal = RegRead($REG_PATH_HKCU, "")
Return ($sVal == $TARGET_VAL)
EndFunc ;==>_IsDisabled

Func _RefreshStatus($ctrlID)
If _IsDisabled() Then
GUICtrlSetData($ctrlID, "Enable Hotkey (&E)")
Else
GUICtrlSetData($ctrlID, "Disable Hotkey (&D)")
EndIf
EndFunc ;==>_RefreshStatus

Func _HandleToggle($ctrlID)
If _IsDisabled() Then
; To Enable: Delete the hijacked keys
RegDelete($REG_PATH_HKLM)
RegDelete($REG_PATH_HKCU)
MsgBox($MB_ICONINFORMATION, "Success", "Office shortcut has been ENABLED.")
Else
; To Disable: Write the hijacked keys
RegWrite($REG_PATH_HKLM, "", "REG_SZ", $TARGET_VAL)
RegWrite($REG_PATH_HKCU, "", "REG_SZ", $TARGET_VAL)
MsgBox($MB_ICONINFORMATION, "Success", "Office shortcut has been DISABLED.")
EndIf
_RefreshStatus($ctrlID)
EndFunc ;==>_HandleToggle
相关推荐
鸽芷咕2 小时前
【已解决】Claude Code 报错“claude.exe 与 Windows 不兼容“的解决方法
windows·claude
bike兔兔2 小时前
Python实现CSV文件转Excel,一键格式转换办公小脚本
开发语言·windows·python
kyle-fang2 小时前
langchain各类文档加载
windows·python·langchain
徐健峰4 小时前
Claude Code 国内不稳定?OpenAI Codex CLI 完全替代指南(Windows 版,2026)
windows
2401_827560204 小时前
【电脑和手机系统】win11镜像离线修复命令(六)
windows
minxihou4 小时前
Windows 11 OpenSSH Server 完整排错指南(微软账号场景)
windows·microsoft·ssh·openssh·troubleshooting·windowswsl2
公子小六4 小时前
基于.NET的Windows窗体编程之WinForms数据表格
windows·c#·.net·winforms
糯米团子7494 小时前
蓝桥杯javaB组赛前四天复习-1
java·windows·蓝桥杯
bike兔兔4 小时前
Python实现图片批量重命名+统一改名,简单好用图片整理工具
windows