로그인시 Outlook을 자동으로 시작하지만 시스템 트레이 (알림 영역)로 최소화하는 방법이 있습니까? PC를 시작할 때받은 편지함이 내 얼굴에 표시되는 것을 원하지 않고 새 메일이 도착할 때 별도의 알림 만 표시합니다.
중요한 경우 Outlook 2003을 사용하고 있습니다.
답변
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
. - 원하는대로 이름을 지정하십시오.
- 스크립트 경로를 사용하여 작성한 새 값을 수정하십시오.
답변
Outlook에는이 기능이 내장되어 있지 않지만 다음 start
명령을 사용할 수 있습니다 .
-
시작 폴더에 명령을 실행하는 바로 가기를 만듭니다.
cmd /c start /min "" "FullPathOfOutlook.exe"
또는 명령이 포함 된 배치 파일
@start /min "" "FullPathOfOutlook.exe"
-
트레이 아이콘을 마우스 오른쪽 버튼으로 클릭하고 최소화시 숨기기를 선택 합니다.
답변
을 입력하여 명령 행에서 전망을 열 outlook.exe
수있는 경우이 코드를 포함하는 배치 파일을 작성 start /b /min outlook.exe
하여 Windows 시작 폴더에 배치하십시오.
답변
Outlook 2010이 설치된 Windows 7에서 START 명령에 따옴표를 사용하면 새 명령 창이 열리지 만 Outlook은 시작되지 않습니다. 이는 32 비트 버전의 Windows 7 Pro 및 Enterprise 버전 (최신 업데이트 모두)에서 발생합니다. 64 비트 버전 또는 다른 버전에서 발생하는지 말할 수 없습니다.
이 문제를 해결하려면 START 명령으로 시작하려는 “path \ program”을 둘러싸는 따옴표를 생략해야합니다. 그러나 일반적으로 경로 이름에 공백이 있으므로 경로를 자르지 않으면 (길이를 줄이지 않으면) 다른 오류가 발생할 수 있습니다. 여러 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 버전을 나타냅니다. 또한 Outlook.exe 끝에있는 .exe는 이러한 명령 줄에 필요하지 않습니다.
답변
위의 코드를 상당한 시간 동안 사용했으며 이전의 모든 기고자에게 작업 / 개선 / 제안을 공유해 주셔서 감사합니다. 그러나 최근 Windows 10 (64 Bit) 및 Outlook 2016 (64 Bit)과 함께 사용할 때 두 가지 환영받지 못하고 자극적 인 문제가 발생했습니다.
-
시스템 트레이의 Outlook 아이콘에 “다른 프로그램이 Outlook을 사용하고 있습니다. 프로그램 연결을 끊고 Outlook을 종료하려면 Outlook 아이콘을 클릭 한 다음 지금 끝내기를 클릭하십시오”라는 메시지와 함께 ‘코그’오버레이가 표시됩니다.
-
‘Outlook 열기’상황에 맞는 메뉴 (트레이에서 Outlook 아이콘을 마우스 오른쪽 단추로 클릭) 항목에서 Outlook을 열려고하면 “활성 탐색기 개체가 없습니다”라는 대화 상자가 나타납니다. 응답에서 “확인”옵션을 클릭하면 Outlook이 시작되지만 (문제 1-장부 오버레이) 남아 있습니다.
위의 문제를 해결하기 위해 필자는 원래 포스터의 원하는 목표를 달성하기 위해 컴파일 할 수있는 유사한 코드를 찾는 것에 대해 설정했습니다.
아래 코드는 다른 수퍼 유저의 더 넓은 혜택을 위해 “있는 그대로”제공됩니다. 두 개의 W10 64 비트 시스템 (64 비트 Office가 설치된 경우)에서 코드를 테스트하는 동안 여전히 RunTime을 해결해야합니다. 하나의 시스템에서 문제가 발생합니다. 다른 기능은 완벽하게 작동합니다. 필요한 경우 여기에서 전체 세부 정보를 볼 수 있습니다. /programming/45533261/start-outlook-2016-64-bit-automatically-minimised-to-windows-10-64-bit-syste
테스트가 계속 진행되는 동안 개발에 대한 평가를 계속하겠습니다 …….
** 빠른 업데이트 ** 이제 HP Elitebook 8440P 랩탑에서 테스트되었습니다-Office 64 비트가 포함 된 Windows 10 Pro 64 비트 + 동일한 12 Outlook 애드온-위의 원래 게시물에 요약 된 요구 사항에 따라 완벽하게 작동합니다 …..
** 추가 업데이트 ** 두 번째 HP Elitebook 8440P 랩톱에서 테스트-Windows 10 Pro 64 비트 (Office 64 비트 포함) + 동일한 12 Outlook Addons-런타임 오류가 다시 발생했습니다. (
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.
답변
몇 가지 검색 및 테스트를 수행하고 마침내 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
작업 스케줄러에서 작업으로 설정하고 시작 응용 프로그램을 만드는 방법과 동일하게 수행하십시오.
답변
나는 최고 답변을 좋아하지만 CScript는 마음에 들지 않습니다 … 그래서 PowerShell에서 만들었습니다 …
Windows 10 및 Office 365에서 완벽하게 작동합니다.
여기에 서식이 지정된 색상 : https://gist.github.com/NotoriousPyro/d30a96d2a89cf783ef3081b13d4816a0
<#
.Synopsis
Automatically finds, runs and places Outlook into the system tray.
.Description
Automatically finds, runs and places Outlook into the system tray.
By default, Outlook will start full-screen even when you have the option to minimize tray enabled and start the app as minimized.
This requires that the OUTLOOK.EXE tray icon is enabled and that the minimize to tray option is on.
Author: NotoriousPyro (Craig Crawford)
#>
$autostartOutlook = $true
$outlook = Invoke-Command -ScriptBlock {
$versions = Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Office" | Where-Object { $_.Name -like '*.*' } | Sort-Object -Property Name -Descending
$outlookexe = $versions.ForEach({
$path = 'Registry::' + $_.Name
try
{
$versionPath = Get-ItemProperty -LiteralPath (Join-Path $path 'Outlook\InstallRoot') -Name Path -ErrorAction SilentlyContinue
$installRoot = ($versionPath).Path
}
catch {}
if ($installRoot -ne $null)
{
$outlookexe = Join-Path $installRoot 'OUTLOOK.EXE'
if (Test-Path -Path $outlookexe)
{
return $outlookexe
}
}
})
return $outlookexe
}
Add-Type -TypeDefinition '
public enum ShowStates
{
Hide = 0,
Normal = 1,
Minimized = 2,
Maximized = 3,
ShowNoActivateRecentPosition = 4,
Show = 5,
MinimizeActivateNext = 6,
MinimizeNoActivate = 7,
ShowNoActivate = 8,
Restore = 9,
ShowDefault = 10,
ForceMinimize = 11,
}
'
$User32Definition = @'
[DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
[DllImport("user32.dll")] public static extern bool IsWindowVisible(IntPtr hWnd);
'@
# add signature as new type to PowerShell (for this session)
$User32 = Add-Type -MemberDefinition $User32Definition -Name User32 -PassThru
$maxLoops = 10; $loops = 0
do
{
$outlookHandle = Get-Process OUTLOOK -ErrorAction SilentlyContinue
if (-not $outlookHandle -and $autostartOutlook)
{
Write-Verbose "Starting OUTLOOK.EXE from $outlook"
Start-Process $outlook
Start-Sleep -Seconds 2
}
if ($outlookHandle)
{
$windowHandle = $outlookHandle.MainWindowHandle
Write-Verbose "OUTLOOK.EXE is running..."
if ($User32::IsWindowVisible($windowHandle))
{
Write-Verbose "OUTLOOK.EXE is visible... attempting to minimize..."
$minimized = $User32::ShowWindowAsync($windowHandle, [ShowStates]::Minimized)
Start-Sleep -Seconds 2
if (-not $minimized)
{
Write-Verbose "Failed to minimize OUTLOOK.EXE... Outlook may still be starting..."
$outlookHandle = $null
}
elseif (-not $User32::IsWindowVisible($windowHandle))
{
Write-Verbose "OUTLOOK.EXE is now minimized"
break;
}
}
else
{
Write-Verbose "OUTLOOK.EXE not visible..."
break;
}
}
Write-Verbose "Waiting for OUTLOOK.EXE to be ready, attempt: $loops of $maxLoops"
$loops += 1
}
until ($outlookHandle -ne $null -or $loops -ge $maxLoops)