Outlook'u tepsiden otomatik olarak başlatma


11

Outlook'u girişte otomatik olarak başlatmanın, ancak sistem tepsisine (bildirim alanı) küçültülmesinin bir yolu var mı? Bilgisayarımı başlattığımda gelen kutumun yüzümde gösterilmesini istemiyorum, sadece yeni posta geldiğinde ayrı bir bildirim.

Önemli olursa Outlook 2003 kullanıyorum.


1
Bu makaleye bir göz atın: support.microsoft.com/kb/251340
Reorx

@Reorx bu bir cevap yapmak
kinokijuf

Yanıtlar:


15

Windows 7 (x64) üzerinde Outlook 2010 (x86): Başlangıçta Sistem Tepsisini Başlat ve Küçült

Bu iş parçasının biraz eski olduğunu biliyorum; ancak, bir web araması bu sorunun sayısız hesaplarını ortaya çıkarıyor ve çalışan bir çözüm sağlayan bir tane bulamadım. Hangi nedenle olursa olsun, bu sorunun normal çözümleri her durumda işe yaramaz.

Sorun:

  • İlk oturum açıldığında, Outlook simgesi Görev Çubuğunda görünür olmaya devam eder ve pencereyi geri yüklemeye zorlar ve ardından Outlook kendisini Görev Çubuğundan kaldırmadan önce el ile simge durumuna küçültür.
  • Outlook kısayolunu Başlangıç ​​klasörüne eklemek ve Outlook Tepsisi Simgesi'nin içerik menüsünden Küçültüldüğünde Gizle'yi seçmek sorunu çözmez.
  • Bir toplu iş dosyasından veya kısayolundan / Min bayrağı kullanmak da işe yaramaz.

Çözüm:

  1. Outlook'u el ile açın ve Küçültüldüğünde Gizle seçeneğinin işaretli olduğunu doğrulamak için Outlook Tepsisi Simgesini sağ tıklatın.
  2. Yeni bir metin dosyası oluşturun ve aşağıdaki kodu ekleyin.

    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. ÖNEMLİ! PATH_TO_OUTLOOKKurulumunuzun gerçek konumunu yansıtacak şekilde değiştirdiğinizden emin olun .

  4. .vbsWindows'u bir VBScript olarak tanımaya zorlamak için bir uzantıyla metin dosyasını yeniden adlandırın .

İsteğe bağlı:

  1. Komut dosyasını istediğiniz yerde saklayın.
  2. Komut dosyasına bir kısayol oluşturun ve bunun yerine Başlangıç ​​klasörüne yerleştirin.
  3. Kısayola sağ tıklayın ve özellikleri seçin.
  4. Simgeyi Değiştir düğmesini kullanarak Outlook yürütülebilir dosyasının konumuna göz atın ve yürütülebilir dosyada depolanan Outlook simgesini seçin.

Performans iyileştirme:

Komut dosyasını veya komut dosyasına bir kısayolu Başlangıç ​​klasörüne yerleştirmek yerine, komut dosyasını oturum açarken hemen çalıştırmak için kayıt defteri düzenlenebilir.

  1. Yukarıdaki Çözüm bölümündeki 1-4. Adımları izleyin .
  2. Komut dosyasını istediğiniz yere yerleştirin.
  3. Kayıt defteri anahtarına gerekirse yeni bir Dize Değeri veya gerekirse yeni bir Genişletilebilir Dize Değeri ekleyin HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run.
  4. İstediğinizi adlandırın.
  5. Komut dosyasının yolu ile oluşturduğunuz yeni değeri değiştirin.

Kayıtlı olmayan ve kayıtlı bir kullanıcınız olduğunu fark ettim - Sayfanızın en altındaki bize ulaşın bağlantısını kullanarak bunları birleştirebilirsiniz ve kesinlikle birleştirmelisiniz
Journeyman Geek

Windows 8.1 ve Office 2013 ile harika çalışıyor! Değiştirilmesi gereken tek şey, PATH_TO_OUTLOOK'un Office14 yerine Office15 olması gerektiğidir. Ayrıca HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Preference\MinToTray1 değeriyle kayıt defterine eklemeniz gerekir .
Nate

Bu komut dosyasını Başlangıç ​​klasörümden el ile yürüttüğümde, simge durumuna küçültülüyor, ancak Outlook simgesi görev çubuğumda takılı kalıyor. Sadece tepsimde istiyorum. Outlook'u görev çubuğu simgesiyle etkinleştirip simge durumuna küçültdüğümde, tepsiye gitti ve görev çubuğunu beklendiği gibi bıraktı.
rolandow

@rolandow Görev çubuğunda kalan simgeyle ilgili sorun, sorun tanımının ilk bölümünde belirtilmiştir. Düzgün çalışmıyorsa, büyük olasılıkla bir zamanlama sorunudur. Önerilen olarak kayıt defterine eklemenin, pencerelerin başlatma sırasında öğeleri yürütme şekli nedeniyle herhangi bir zamanlama sorununu çözdüğünü buldum. Deneyebileceğiniz başka bir şey, Wscript.Sleep (XXX) değerinin değerini değiştirmektir.
Jason

7

Outlook'un bunun için yerleşik bir özelliği yoktur, ancak şu startkomutu kullanabilirsiniz :

  1. Başlangıç ​​klasörünüzde komutu yürüten bir kısayol oluşturun

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

    veya komutu içeren bir toplu iş dosyası

    @start /min "" "FullPathOfOutlook.exe"
    
  2. Tepsi simgesine sağ tıklayın ve Küçültüldüğünde gizle'yi işaretleyin .


Çalışmıyor. Outlook yine de ekranı kaplamaya başlar.
kinokijuf

Belki net değildim. Bilgisayarımda yukarıdaki yöntemi (toplu iş dosyası ile) kullanıyorum. İşe yarıyor.
Dennis

Hangi Outlook sürümüne sahipsiniz?
kinokijuf

Outlook 2007, ama bu önemli değil. startBirçok başlangıç ​​uygulamasını en aza indirmek için kullanıyorum ve hepsi ile çalışıyor.
Dennis

Dennis'in ne dediğini doğrulayabilirim. Outlook 2003'lü XP makinemde start /min "" "C:\Program Files\Microsoft Office\OFFICE11\OUTLOOK.exe", Başlangıç ​​klasöründeki bir toplu iş dosyasında kullanıyorum ve oturum açtığımda simge durumuna küçültülmüş olarak açılıyor. Win7 / Outlook 2010'umla aynısını yapıyorum, ancak sadece farklı bir yol.
jb11

0

Outlook'u komut satırından yazarak açabiliyorsanız outlook.exe, bu kodu içeren bir toplu iş dosyası oluşturun start /b /min outlook.exeve bunu Windows başlangıç ​​klasörünüze yerleştirin.


0

Outlook 2010 ile Windows 7'de BAŞLAT komutuyla tırnak işaretlerini kullanırken yeni bir komut penceresi açılır, ancak Outlook başlatılmaz. Bu, Windows 7 Pro ve Enterprise sürümlerinin 32bit sürümlerinde (her ikisi de en son güncelleştirmelerle) olur. 64bit sürümleri veya diğer sürümlerle olup olmadığını söyleyemem.

Bu sorunu çözmek için, BAŞLAT komutuyla başlatmak istediğiniz "yol \ programını" çevreleyen tırnak işaretlerini atlamanız gerekir. Ancak, yol adında genellikle boşluk bulunduğundan, yolu kısaltmazsanız (kısaltmanız) muhtemelen farklı bir hata alırsınız. Yüklü birden çok Microsoft ürününüz varsa, yoldaki kesik adlar değişebilir. Doğru kesilmiş yolu elde etmek için, DOS komut isteminde (CMD penceresinde) aşağıdaki komut satırını kullanın: FOR / D% T IN ("C: \ Program Files \ Microsoft Office \ Office14 \ Outlook") DO ECHO% ~ sT

Yukarıda elde edilen sonuçları kullanırken benim için çalışan bir örnek: START / MIN C: \ Progra ~ 1 \ Micros ~ 1 \ Office14 \ Outlook

Not: Office14 2010 sürümü, Office12 2007 sürümü belirtir. Ayrıca, Outlook.exe sonunda .exe bu komut satırlarında gerekli olmadığını unutmayın.


Bunun daha iyi olduğunu düşünmenizin bir nedeni var mı start /min "" "FullPathOfOutlook.exe"?
Scott

0

Yukarıdaki kodu uzun bir süredir kullandım ve önceki tüm katılımcılara çalışmalarını / iyileştirmelerini / önerilerini paylaştıkları için teşekkür etmek istiyorum. Ancak son zamanlarda, Windows 10 (64 Bit) ve Outlook 2016 (64 Bit) ile birlikte kullanıldığında iki istenmeyen ve rahatsız edici sorun yaşadım:

  1. Sistem Tepsisindeki Outlook simgesi, "Başka bir program Outlook kullanıyor. Programların bağlantısını kesmek ve Outlook'tan çıkmak için Outlook simgesini ve ardından Şimdi Çık'ı tıklatın" iletisiyle bir "dişli" yer paylaşımı görüntüler.

  2. Outlook'u 'Outlook'u Aç' bağlam menüsünden açma girişimleri (tepsideki Outlook simgesini sağ tıklatın), "Etkin explorer nesnesi bulunamadı" bildiren bir iletişim kutusunun görüntülenmesine neden olur. Yanıtta "Tamam" seçeneğini tıklattığınızda Outlook başlatılır (sorun 1 - dişli kaplaması olsa da) kalır.

Yukarıdaki sorunları çözmek için, orijinal posterin (kendi gereksinimlerimi yansıtan) istenen hedeflerini karşılamak için derleyebileceğim bazı benzer kodları bulmaya karar verdim.

Aşağıdaki kod, diğer SuperUsers'ın daha büyük yararı için "olduğu gibi" sunulmaktadır, iki W10 64 Bit sistemde (her ikisi de 64 Bit Office yüklü) kodu test ederken hala bir RunTime'ı çözdüğümü not etmek önemlidir. bir sistem üzerinde. Diğeri kusursuz çalışıyor. Gerektiğinde tüm ayrıntılar burada görülebilir: /programming/45533261/start-outlook-2016-64-bit-automatically-minimised-to-windows-10-64-bit-syste

Testler devam ederken sizi gelişmelerden haberdar edeceğim .......

** Hızlı Güncelleme ** Şimdi HP Elitebook 8440P Dizüstü Bilgisayar'da test edildi - Office 64 Bit + aynı 12 Outlook Eklentileri ile Windows 10 Pro 64 Bit - Yukarıdaki orijinal yayında belirtilen gereksinimlere göre kusursuz işlevler .....

** Daha Fazla Güncelleme ** İkinci bir HP Elitebook 8440P Dizüstü Bilgisayarda test edildi - Office 64 Bit + aynı 12 Outlook Eklentileri ile Windows 10 Pro 64 Bit - RunTime hatası tekrar deneyimlendi :(

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

Bazı arama ve testler yaptım ve sonunda aşağıdaki vbscript kodunun Win10 dizüstü bilgisayarımda çalıştığını gördüm:

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

Sadece Görev Zamanlayıcı'da bir eylem olarak ayarlayın ve bunu bir başlangıç ​​uygulamasını nasıl yaptığınız gibi yapın.


0

En üstteki cevabı beğendim, ancak CScript'te olmasını sevmiyorum ... Bu yüzden PowerShell'de yaptım ...

Windows 10 ve Office 365 ile sorunsuz çalışır.

Burada biçimlendirilmiş renk: 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)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.