有没有办法在登录时自动启动 Outlook,但最小化到系统托盘(通知区域)?我不希望在启动 PC 时显示收件箱,只想在收到新邮件时显示一个离散通知。
如果重要的话,我正在使用 Outlook 2003。
答案1
Windows 7 (x64) 上的 Outlook 2010 (x86):启动时启动并最小化到系统托盘
我知道这个帖子有点老了;但是,网上搜索到了很多关于这个问题的报道,我找不到一个能提供有效解决方案的。无论出于什么原因,这个问题的正常解决方案并不适用于所有情况。
问题:
- 首次登录时,Outlook 图标仍然可见于任务栏,迫使用户恢复窗口,然后手动最小化,之后 Outlook 才会从任务栏中移除。
- 只需将 Outlook 快捷方式添加到启动文件夹并从 Outlook 托盘图标的上下文菜单中选择“最小化时隐藏”并不能解决问题。
- 使用批处理文件或快捷方式中的 /Min 标志也不起作用。
解决方案:
- 手动打开 Outlook,然后右键单击 Outlook 托盘图标以验证是否选中了“最小化时隐藏”。
创建一个新的文本文件并插入以下代码。
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
重要的!请务必进行更改
PATH_TO_OUTLOOK
以反映安装的实际位置。- 将文本文件重命名为您想要的任意扩展
.vbs
名,以强制 Windows 将其识别为 VBScript。
选修的:
- 将脚本存储到您想要的任何地方。
- 创建脚本的快捷方式并将其放在启动文件夹中。
- 右键单击快捷方式并选择属性。
- 使用更改图标按钮,浏览到 Outlook 可执行文件的位置并选择存储在可执行文件中的 Outlook 图标。
性能改进:
可以编辑注册表以便在登录时立即运行脚本,而不是将脚本或脚本的快捷方式放在启动文件夹中。
- 按照步骤 1-4 进行操作解决方案请参阅上面的内容。
- 将脚本放置在您想要的任何位置。
- 添加新的字符串值或新的可扩展字符串值如果 需要 , 可以 添加 注册表 项
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
. - 随意命名即可。
- 使用脚本路径修改您创建的新值。
答案2
Outlook 没有内置此功能,但您可以使用start
命令:
在启动文件夹中创建一个快捷方式,指向执行该命令
cmd /c start /min "" "FullPathOfOutlook.exe"
或包含命令的批处理文件
@start /min "" "FullPathOfOutlook.exe"
右键单击托盘图标并检查最小化时隐藏。
答案3
我已经使用上述代码很长时间了,并想感谢所有之前的贡献者分享他们的工作/改进/建议。然而,最近,我在与 Windows 10(64 位)和 Outlook 2016(64 位)结合使用时遇到了两个不受欢迎且令人恼火的问题,它们是:
系统托盘中的 Outlook 图标显示一个“齿轮”覆盖,并显示消息“另一个程序正在使用 Outlook。要断开程序并退出 Outlook,请单击 Outlook 图标,然后单击“立即退出”。
尝试从“打开 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 启动文件夹中。