在托盘中自动启动 Outlook

在托盘中自动启动 Outlook

有没有办法在登录时自动启动 Outlook,但最小化到系统托盘(通知区域)?我不希望在启动 PC 时显示收件箱,只想在收到新邮件时显示一个离散通知。

如果重要的话,我正在使用 Outlook 2003。

答案1

Windows 7 (x64) 上的 Outlook 2010 (x86):启动时启动并最小化到系统托盘

我知道这个帖子有点老了;但是,网上搜索到了很多关于这个问题的报道,我找不到一个能提供有效解决方案的。无论出于什么原因,这个问题的正常解决方案并不适用于所有情况。

问题:

  • 首次登录时,Outlook 图标仍然可见于任务栏,迫使用户恢复窗口,然后手动最小化,之后 Outlook 才会从任务栏中移除。
  • 只需将 Outlook 快捷方式添加到启动文件夹并从 Outlook 托盘图标的上下文菜单中选择“最小化时隐藏”并不能解决问题。
  • 使用批处理文件或快捷方式中的 /Min 标志也不起作用。

解决方案:

  1. 手动打开 Outlook,然后右键单击 Outlook 托盘图标以验证是否选中了“最小化时隐藏”。
  2. 创建一个新的文本文件并插入以下代码。

    OPTION EXPLICIT
    
    CONST PATH_TO_OUTLOOK = """C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE"""
    CONST SHOW_MAXIMIZED = 3
    CONST MINIMIZE = 1
    
    DIM shell, outlook
    
    SET shell = WScript.CreateObject("WScript.Shell")
    
    ' Open Outlook
    shell.Run PATH_TO_OUTLOOK, SHOW_MAXIMIZED, FALSE
    
    ON ERROR RESUME NEXT
    
    ' Grab a handle to the Outlook Application and minimize 
    SET outlook = WScript.CreateObject("Outlook.Application")
    WScript.Sleep(100)
    outlook.ActiveExplorer.WindowState = SHOW_MAXIMIZED
    
    ' Loop on error to account for slow startup in which case the
    ' process and/or the main Outlook window is not available
    WHILE Err.Number <> 0
      Err.Clear
      WScript.Sleep(100)
      SET outlook = NOTHING
      SET outlook = WScript.CreateObject("Outlook.Application")
      outlook.ActiveExplorer.WindowState = MINIMIZE
    WEND
    
    ON ERROR GOTO 0
    
    SET outlook = NOTHING
    SET shell = NOTHING
    
  3. 重要的!请务必进行更改PATH_TO_OUTLOOK以反映安装的实际位置。

  4. 将文本文件重命名为您想要的任意扩展.vbs名,以强制 Windows 将其识别为 VBScript。

选修的:

  1. 将脚本存储到您想要的任何地方。
  2. 创建脚本的快捷方式并将其放在启动文件夹中。
  3. 右键单击快捷方式并选择属性。
  4. 使用更改图标按钮,浏览到 Outlook 可执行文件的位置并选择存储在可执行文件中的 Outlook 图标。

性能改进:

可以编辑注册表以便在登录时立即运行脚本,而不是将脚本或脚本的快捷方式放在启动文件夹中。

  1. 按照步骤 1-4 进行操作解决方案请参阅上面的内容。
  2. 将脚本放置在您想要的任何位置。
  3. 添加新的字符串值或新的可扩展字符串值如果 需要 , 可以 添加 注册表 项HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run.
  4. 随意命名即可。
  5. 使用脚本路径修改您创建的新值。

答案2

Outlook 没有内置此功能,但您可以使用start命令:

  1. 在启动文件夹中创建一个快捷方式,指向执行该命令

    cmd /c start /min "" "FullPathOfOutlook.exe"
    

    或包含命令的批处理文件

    @start /min "" "FullPathOfOutlook.exe"
    
  2. 右键单击托盘图标并检查最小化时隐藏

答案3

我已经使用上述代码很长时间了,并想感谢所有之前的贡献者分享他们的工作/改进/建议。然而,最近,我在与 Windows 10(64 位)和 Outlook 2016(64 位)结合使用时遇到了两个不受欢迎且令人恼火的问题,它们是:

  1. 系统托盘中的 Outlook 图标显示一个“齿轮”覆盖,并显示消息“另一个程序正在使用 Outlook。要断开程序并退出 Outlook,请单击 Outlook 图标,然后单击“立即退出”。

  2. 尝试从“打开 Outlook”上下文菜单(右键单击托盘中的 Outlook 图标)项打开 Outlook 会导致出现一个对话框,报告“未找到活动的资源管理器对象”。单击“确定”选项可启动 Outlook(但问题 1 - 齿轮覆盖)仍然存在。

为了解决上述问题,我着手寻找一些类似的代码,可以编译这些代码以满足原始海报的预期目标(反映了我自己的要求)。

以下代码“按原样”提供,以方便其他超级用户使用,但需要注意的是,虽然我已经在两个 W10 64 位系统(均安装了 64 位 Office)上测试了代码,但我仍然需要解决其中一个系统上的运行时问题。另一个系统运行正常。如果需要,可以在此处查看完整详细信息: https://stackoverflow.com/questions/45533261/start-outlook-2016-64-bit-automatically-minimised-to-windows-10-64-bit-syste

随着测试的继续,我将随时向您通报任何进展……

** 快速更新 ** 现在已在 HP Elitebook 8440P 笔记本电脑上测试 - Windows 10 Pro 64 位,带有 Office 64 位 + 相同的 12 个 Outlook 插件 - 按照上面原始帖子中概述的要求完美运行.....

** 进一步更新 ** 在第二台 HP Elitebook 8440P 笔记本电脑上测试 - Windows 10 Pro 64 位,带有 Office 64 位 + 相同的 12 个 Outlook 附加组件 - 再次出现运行时错误 :(

OPTION EXPLICIT

Dim WshShell
Dim OLObj 
Set WshShell = WScript.  CreateObject ( "Wscript.Shell" ) 
'Open Outlook: Note that inspite of the launch options, it will open the program in a normal window.
'The file location path is not necessary as Windows 10 correctly identifies Outlook's location.
WshShell.Run "OUTLOOK.EXE" , 3, false 
'This will mimimise it to the system tray after a 10 second pause to allow for mail collection on Outlook launch.
WScript.Sleep (10000)
Set OLObj = GetObject("","Outlook.Application")
'Activates the window
OLObj.ActiveExplorer.Activate
'Sends the command to minimise
OLObj.ActiveExplorer.WindowState = 1
'Outlook does not immediately minimise to the system tray so that 'Send/Receive' can initiate mail collection.

答案4

如果您能够通过键入从命令行打开 Outlook outlook.exe,则创建一个包含此代码的批处理文件 start /b /min outlook.exe并将其放在 Windows 启动文件夹中。

相关内容