禁用 Outlook 2016 中的某些热键

禁用 Outlook 2016 中的某些热键

Outlook 2016 中有一些烦人的热键。例如,ctrl-F 在大多数应用程序中表示“查找”,但在 Outlook 中它表示“转发邮件”。几个应用程序使用 Backspace 返回,但在 Outlook 中它表示“存档邮件”。

有没有办法重新分配一些热键或禁用 Outlook 2016 中的一些热键?

答案1

以下是两种停止 Outlook Backspace Archive 快捷键工作的方法:

  1. 没错,通过注册表

如果您愿意并且能够更新注册表,请在此页面上搜索 DisableOneClickArchive DWORD 并按照其中的说明进行编辑:https://office365itpros.com/2022/09/02/outlook-archive-folder/

  1. 或者通过我编写的 Visual Basic 代码来捕捉操作。这样做的唯一缺点是您必须为每个文件夹编写代码,并且它会阻止项目因任何原因进入存档文件夹。

此代码适用于收件箱和已发送默认文件夹。我还包含了非默认文件夹的代码,但显然我不知道您的文件夹名称,因此我用单引号和句点注释掉了该代码。要激活这些行,请删除所有 '. 并将 Other 重命名为您的文件夹名称。如果您的文件夹是嵌套的,则只需在其前面加上父文件夹名称,如下所示:

Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Parent.Folders("TheParentOfOther").Folders("Other")

(或者如果它嵌套在收件箱下,则直接在后面进行编码,如下所示:

Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders("Other")

指示

通过功能区上的“开发人员”选项卡打开 Outlook Visual Basic(如果您没有看到它,请单击文件、选项、自定义功能区,然后勾选主页下的“开发人员”选项卡)。

在左侧项目资源管理器窗口中,展开项目和 Microsoft Outlook 对象,然后双击 ThisOutlookSession

在右侧窗口中粘贴以下代码。(如果您那里已经有代码,则需要合并私有定义部分、Application_Startup 行,并在所有行下方附加 subs。)

然后单击“保存”,并重新启动 Outlook。

' Prevent move to Archive folder from Inbox or Sent or other folders

' Define each folder's variable with event watching
Private WithEvents folderInbox As Outlook.Folder
Private WithEvents folderSent As Outlook.Folder
'.Private WithEvents folderOther As Outlook.Folder

' During startup, set the folder variables
Private Sub Application_Startup()
   Set folderInbox = Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
   Set folderSent = Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail)
'. Set folderOther = Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Parent.Folders("Other")
End Sub

' Before moving an item out of the Inbox folder,
Private Sub folderInbox_BeforeItemMove(ByVal Item As Object, ByVal MoveTo As MAPIFolder, Cancel As Boolean)
   ' if it's to the Archive folder, cancel the move
   If MoveTo = "Archive" Then Cancel = True
End Sub
' Before moving an item out of the Sent folder,
Private Sub folderSent_BeforeItemMove(ByVal Item As Object, ByVal MoveTo As MAPIFolder, Cancel As Boolean)
   ' if it's to the Archive folder, cancel the move
   If MoveTo = "Archive" Then Cancel = True
End Sub
'.' Before moving an item out of the Other folder,
'.Private Sub folderOther_BeforeItemMove(ByVal Item As Object, ByVal MoveTo As MAPIFolder, Cancel As Boolean)
'.   ' if it's to the Archive folder, cancel the move
'.   If MoveTo = "Archive" Then Cancel = True
'.End Sub

相关内容