11

Есть ли способ автоматически запустить Outlook при входе в систему, но свернуть в системный трей (область уведомлений)? Я не хочу, чтобы мой почтовый ящик показывал мне в лицо, когда я запускаю свой компьютер, только отдельное уведомление, когда приходит новая почта.

Я использую Outlook 2003, если это имеет значение.

6 ответов6

14

Outlook 2010 (x86) в Windows 7 (x64): запуск и сворачивание в системный трей при запуске

Я знаю, что эта тема несколько старая; Тем не менее, поиск в Интернете обнаруживает многочисленные учетные записи этой проблемы, и я не смог найти тот, который обеспечивает рабочее решение. По какой-то причине нормальные решения этой проблемы не работают во всех случаях.

Проблема:

  • При первом входе в систему значок 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. Измените новое значение, которое вы создали, указав путь к сценарию.
6

В Outlook нет встроенной функции для этого, но вы можете использовать команду start :

  1. Создайте ярлык в вашей папке автозагрузки, указывающий, что выполняет команду

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

    или командный файл, содержащий команду

    @start /min "" "FullPathOfOutlook.exe"
    
  2. Щелкните правой кнопкой мыши значок в трее и установите флажок Скрыть при сворачивании.

0

если вы можете открыть outlook из командной строки, набрав outlook.exe , создайте пакетный файл, включающий этот код start /b /min outlook.exe и поместите его в папку автозагрузки Windows.

0

Я провел поиск и тестирование и, наконец, обнаружил, что следующий код vbscript работает на моем ноутбуке Win10:

set shell = createobject("wscript.Shell")
shell.run "outlook.exe", 7, False     '... SH_SHOWMINNOACTIVE=7 "should" work
shell.sendkeys "% n"     ' ... Minimize Alt Space Bar - n

Просто установите его как действие в планировщике заданий и сделайте так, как при запуске приложения.

0

Я использовал приведенный выше код в течение некоторого значительного времени и хотел бы поблагодарить всех предыдущих авторов за то, что они поделились своей работой / улучшениями / предложениями. Однако в последнее время у меня возникли две нежелательные и раздражающие проблемы, когда он используется вместе с Windows 10 (64-разрядная версия) и Outlook 2016 (64-разрядная версия):

  1. Значок Outlook в системном трее отображает пометку "cog" с сообщением «Другая программа использует Outlook. Чтобы отключить программы и выйти из Outlook, щелкните значок Outlook, а затем нажмите "Выйти сейчас".

  2. При попытке открыть Outlook из контекстного меню "Открыть Outlook" (щелкните правой кнопкой мыши значок Outlook на панели задач) появляется диалоговое окно с сообщением "Не найден активный объект проводника". Нажатие на кнопку "ОК" в ответ запускает Outlook (хотя проблема 1 - наложение Cog) остается.

Чтобы решить вышеупомянутые проблемы, я приступил к поиску некоторого похожего кода, который я мог бы скомпилировать для достижения желаемых целей оригинального плаката (который отражает мои собственные требования).

Приведенный ниже код предлагается "как есть" для более широкого использования других суперпользователей, важно отметить, что, хотя я тестировал код на двух 64-битных системах W10 (обе с установленным 64-битным Office), я все еще должен разрешить RunTime выпуск одной системы. Другие функции без нареканий. Полную информацию можно посмотреть здесь, если требуется: https://stackoverflow.com/questions/45533261/start-outlook-2016-64-bit-automatics-minimised-to-windows-10-64-bit-syste

Я буду держать вас в курсе любых событий, так как тестирование продолжается .......

** Быстрое обновление ** Теперь протестировано на ноутбуке HP Elitebook 8440P - Windows 10 Pro 64 Bit с Office 64 Bit + те же 12 дополнений Outlook - работает без сбоев в соответствии с требованиями, изложенными в оригинальном посте выше .....

** Дальнейшее обновление ** Протестировано на втором ноутбуке HP Elitebook 8440P - Windows 10 Pro 64 Bit с Office 64 Bit + те же 12 расширений Outlook - снова возникла ошибка RunTime :(

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.
0

При использовании кавычек с командой START в Windows 7 с Outlook 2010 открывается новое командное окно, но Outlook не запускается. Это происходит с 32-разрядными версиями Windows 7 Pro и Enterprise (обе с последними обновлениями). Я не могу сказать, случается ли это с 64-битными версиями или другими выпусками.

Чтобы решить эту проблему, вы должны опустить любые кавычки, которые окружают «путь \ программу», который вы хотите запустить с помощью команды START. Однако, поскольку в имени пути обычно есть пробелы, вы, скорее всего, получите другую ошибку, если не урезать путь (укоротить его). Сокращенные имена в пути могут отличаться, если у вас установлено несколько продуктов Microsoft. Чтобы получить правильный усеченный путь, используйте следующую командную строку в командной строке DOS (в окне CMD): FOR /D% T IN ("C: \ Program Files \ Microsoft Office \ Office14 \ Outlook") DO ECHO% ~ sT

Вот пример, который работал для меня при использовании результатов, полученных выше: START /MIN C:\Progra ~ 1\Micros ~ 1\Office14\Outlook

ПРИМЕЧАНИЕ. Office14 относится к версии 2010, а Office12 - к версии 2007. Также обратите внимание, что .exe в конце Outlook.exe не требуется в этих командных строках.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .