一键禁用 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
相关推荐
Byron Loong5 小时前
【调试】Dump 文件分析的完整流程
windows
Geoking.7 小时前
VSCode 安装 Claude Code 插件 + ccswitch 配置 DeepSeek API 完整教程(Windows 新手向)
ide·windows·vscode
潘达斯奈基~8 小时前
Windows 下 Claude Code使用 Agent Teams 配置教程
windows
happymaker062610 小时前
Spring框架学习日记——DAY02(依赖注入的方式)
windows
honder试试11 小时前
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
windows·elasticsearch·jenkins
IT里的交易员12 小时前
【系统】Windows 安装 uv
windows·uv
我不是立达刘宁宇13 小时前
windows密码操作
windows
Royzst13 小时前
一、集合概述(前置基础)
开发语言·windows·python
时光追逐者14 小时前
一款基于 C# 开发的 Windows 10/11 系统增强工具,精简、优化、定制一站完成!
开发语言·windows·c#·.net
liuhuizuikeai14 小时前
菜品抽奖活动MFC+服务端
c++·windows·mfc