[AHK]玩转idMSO为Office软件任意增加热键

105 篇文章 5 订阅
10 篇文章 0 订阅

目录

痛点需求

你有没有发现用鼠标在菜单项中寻找某个比较深的菜单项很烦,尤其是还要重复干这件事儿,是否能自己给这个深深的菜单项定义热键呢?比如下面这个功能,我想定义为Ctrl + Shift + C,这里只是举例你可以自己定义为任意想要的热键定义,只要不冲突,也可以定义成一个按键,本文最后面有AHK帮助文档,请自行学习。

Excel较深的菜单选项

再比如在Outlook中我常用的一个打标记功能,我想定义为热键Win+T
Outlook中较深的菜单项

技术原理

微软的Office的Ribbon界面都支持一种叫idMso的标识,可以用来调用某个菜单项功能。具体idMso的值可以去MSDN查阅学习,这也是本文的目的,这个技术貌似网上还没谁教学推广。吐槽下 MSDN 这个资料并不好找。

还有些chm帮助文档提供idMso查阅,比如通过查阅OfficeidMsoViewer,得知上面的复制为图片的功能对应的idMsoCopyAsPicture
在这里插入图片描述
在度娘的帮助下,找到一个日本网站

Office 加载项(以前称为 Office 应用程序)和功能区的完整自定义信息列表

Office 365 图标 (imageMso) 列表

其中页面的 上部分是字面索引,下部分是图标对应的idMSO表格。截图示范如下:
目录索引
F开头的iMSO
以上是网站上F开头的部分Outlook的idMSO截图。

Excel热键定义示范

在Excel中定义热键:Ctrl + Shift + C来复制某个范围为图片

^+c::
ox:=ComObjActive("Excel.Application")
ox.Application.CommandBars.ExecuteMso("CopyAsPicture")
ObjRelease(ox)
return

Outlook热键定义示范

在Outlook中定义热键:Win + T来为某个邮件打上须今日处理的小旗子

#t::
ox:=ComObjActive("Outlook.Application")
ox.Application.ActiveWindow().CommandBars.ExecuteMso("FlagToday")
ObjRelease(ox)
return

如何运行以上脚本

  1. 下载AutoHotkey

  2. 将上面脚本写到一个扩展名为.ahk的文本文件中。

  3. 双击这个ahk文件运行即可。

如何定义热键

符号按键
#Win
^Ctrl
+Shift
Alt

要学习更详细内容,请猛戳中文在线帮助

其他扩展

2018年写过一篇了 [AHK]给Outlook的工具条上的功能单独设置快捷键,其中的方案二 没展开写,也可以试试。可能更通用。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大家好,2009年9月份注册以来,在论坛上学到了许多东西,得得许多会员和版主及管理的帮助和关爱,真的很感谢大家,正是因为,正是因为大家都是无私且乐于助人,分享自己的宝贵的技术和心得,且使我对EXCEL充满着激情,在我的脑海里总是浮现: 1. 我是ExcelHome论坛的会员,我很荣幸 2. 工作空余时间我会情不自禁来到ExcelHome之家,看看家,学习一些别人的的心得与帮助一些新会员 3. 那里有太多太多的宝贝,有意外的收获和惊喜(众里寻“她”千百度;踏破铁鞋无觅处,在EH得来全不费功夫) 4. 遇到问题我会在论坛和百度找,再找不到我就会发贴提问。呵呵,这里一定会得到帮助的 正是因为这些,因为大家的无私,所以我也不能自私,呵呵,分享一下打造“自己2010选项卡”,2010选项卡的修改比2003版的菜单修改复杂了,希望能帮到一些对这方面感兴趣的朋友,由于水平够,里面有许多不足,欢迎大家指正 ,呵呵,我八婆了一大堆,进入主题 对于Excel2007和2010,你注意到的第一件事可能就是它新外观,沿用多年的菜单与工具栏的用户界面已被抛弃了,取而代之的是选项卡和功能区的新界面,现在我们一步步来制作一个自己的选项卡(首先申明,有些代码和方法来自ExcelHome论坛和网络,在这里谢谢这些提供代码的朋友 ,俗话说的好“前人载树,后人乘凉”,并非个人所写) 第一步:在桌面上创建一个名为customUI的文件夹 第二步:步骤2 打开记事本,在其中复制下面的XML代码:文件名为CustomUI.xml,编码为UTF-8 保存到桌面customUI文件夹中 <customUI <button id="a1" imageMso="DatabasePermissions" size="large" label="工作表加密" <button id="a2" imageMso="AdpDiagramKeys" size="large" label="工作表解密" <button id="E1" imageMso="DataSourceCatalogServerScript" size="large" label="ExcelHome论坛" <button id="E2" imageMso="AccountMenu" size="large" label="完美论坛" <button id="E3" imageMso="FilePackageForCD" size="large" label="VBA入门视频"
### 回答1: 你可以使用AutoHotkey编写一个脚本来实现在Windows 10上使用热键来隐藏/显示桌面图标。以下是一个简单的示例脚本: #NoEnv SendMode Input SetWorkingDir %A_ScriptDir% ; 隐藏桌面图标 ^!h:: DllCall("Shell32.dll\SHGetSetSettings", "ptr", , "ptr", x00000001, "ptr", , "uint", ) WinGetClass, ProgmanClass, Progman WinGetClass, WorkerWClass, WorkerW WinHide, ahk_class %ProgmanClass% WinHide, ahk_class %WorkerWClass% return ; 显示桌面图标 ^!s:: DllCall("Shell32.dll\SHGetSetSettings", "ptr", , "ptr", x00000002, "ptr", , "uint", ) WinGetClass, ProgmanClass, Progman WinGetClass, WorkerWClass, WorkerW WinShow, ahk_class %ProgmanClass% WinShow, ahk_class %WorkerWClass% return 在这个脚本中,我们使用了两个热键:Ctrl+Alt+H来隐藏桌面图标,Ctrl+Alt+S来显示桌面图标。当按下Ctrl+Alt+H时,脚本会调用Shell32.dll中的SHGetSetSettings函数来隐藏桌面图标,然后使用WinHide命令隐藏Progman和WorkerW窗口。当按下Ctrl+Alt+S时,脚本会调用SHGetSetSettings函数来显示桌面图标,然后使用WinShow命令显示Progman和WorkerW窗口。 请注意,这个脚本可能不适用于所有的Windows 10系统,因为不同的系统可能使用不同的窗口类名来表示桌面图标。如果你发现这个脚本不能正常工作,请尝试使用其他的窗口类名。 ### 回答2: 在Windows 10操作系统中,我们可以通过自定义热键来实现隐藏/显示桌面图标的功能。为此,我们需要先下载并安装AutoHotkey这一免费软件,然后新建一个AHK文件(后缀名为.ahk),在其中输入以下代码: #NoTrayIcon #Persistent #IfWinActive ahk_class Progman ^!d:: SendMessage 0x111, 0x7, 0, 0, , Progman Return 其中,“#NoTrayIcon”表示喊AutoHotkey将不会在系统托盘中显示图标,“#Persistent”则表示脚本将持续运行,“#IfWinActive ahk_class Progman”指定当桌面为当前活动窗口时才会生效。 然后,在代码中的“^!d::”后面,我们可以自定义所需的热键,这里的“^”表示Ctrl键,“!”表示Alt键,“d”表示D键,即组合键Ctrl+Alt+D。我们可以根据实际需求修改热键。发送消息“SendMessage 0x111, 0x7, 0, 0, , Progman”则实现了隐藏/显示桌面图标的功能。 当我们保存并运行该脚本后,在Windows 10操作系统中使用Ctrl+Alt+D组合键,即可实现隐藏/显示桌面图标的功能。需要注意的是,该脚本的效果不会立即生效,我们需要重新启动Windows Explorer程序或注销/重新登录才能看到效果。 总的来说,通过AutoHotkey软件自定义热键可以方便快捷地实现Windows 10系统中的各种功能,包括隐藏/显示桌面图标。但是需要注意的是,在操作时请确保准确按下组合键,以避免出现意外情况。 ### 回答3: 在Windows 10操作系统中,隐藏和显示桌面图标的方法有很多种,其中使用热键是一种方便快捷的方式。 首先,我们需要使用AutoHotkey(AHK软件来定义一个热键。AutoHotkey是一款小巧而强大的脚本语言软件,它可以让我们自定义各种热键和脚本,实现更为高效的电脑操作。如果没有安装AutoHotkey,我们需要先下载和安装此软件。 接着,我们打开AutoHotkey软件,右键点击桌面,选择“新建AutoHotkey脚本”,在打开的编辑器中书写以下代码: ^!h:: WinGet, exStyle, Style, ahk_class Progman If (exStyle & 0x100) { WinSet, Style, -0x100, ahk_class Progman WinGet, ExStyle, Style, ahk_class WorkerW WinSet, Style, -0x20, ahk_class WorkerW } Else { WinSet, Style, +0x100, ahk_class Progman WinGet, ExStyle, Style, ahk_class WorkerW WinSet, Style, +0x20, ahk_class WorkerW } 上述代码的含义是:按下Ctrl+Alt+H的热键,可以隐藏或显示桌面图标。当桌面图标处于显示状态时,按下此热键会隐藏桌面图标;反之,当桌面图标处于隐藏状态时,按下此热键会显示桌面图标。 最后,我们保存脚本,并双击打开它。接着,我们就可以使用Ctrl+Alt+H的热键快捷地隐藏或显示桌面图标了。当然,如果需要修改热键,可以在脚本中将“^!h”更改为其他热键。 总之,使用热键可以让我们更方便快捷地隐藏和显示桌面图标,极大地提高了我们的工作效率和操作体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值