Mulai Outlook secara otomatis dalam baki

11

Apakah ada cara untuk memulai Outlook secara otomatis saat login, tetapi diminimalkan ke system tray (area notifikasi)? Saya tidak ingin kotak masuk saya muncul di wajah saya ketika saya mulai PC saya, hanya pemberitahuan diskrit ketika surat baru tiba.

Saya menggunakan Outlook 2003, jika itu penting.

kinokijuf
sumber
1
Lihatlah artikel ini: support.microsoft.com/kb/251340
Reorx
@Reorx membuat ini sebagai jawaban
kinokijuf

Jawaban:

15

Outlook 2010 (x86) pada Windows 7 (x64): Luncurkan dan Perkecil ke Baki Sistem saat Startup

Saya tahu utas ini agak lama; namun, pencarian web menghasilkan banyak akun dari masalah ini dan saya tidak dapat menemukan satu yang menyediakan solusi yang berfungsi. Untuk alasan apa pun, solusi normal untuk masalah ini tidak berfungsi dalam semua kasus.

Masalah:

  • Pada login awal, ikon Outlook tetap terlihat di Taskbar yang memaksa seseorang untuk mengembalikan jendela dan kemudian meminimalkan secara manual sebelum Outlook akan menghapus sendiri dari Taskbar.
  • Cukup menambahkan pintasan Outlook ke folder Startup dan memilih Sembunyikan Ketika Diminimalkan dari menu konteks Ikon Baki Outlook tidak menyelesaikan masalah.
  • Menggunakan / min flag dari file batch atau pintasan tidak berfungsi baik.

Larutan:

  1. Buka Outlook secara manual dan klik kanan Ikon Baki Outlook untuk memverifikasi bahwa Sembunyikan Ketika Diminimalkan dicentang.
  2. Buat file teks baru dan masukkan kode berikut.

    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. PENTING! Pastikan untuk mengubah PATH_TO_OUTLOOKuntuk mencerminkan lokasi instalasi Anda yang sebenarnya.

  4. Ubah nama file teks menjadi apa pun yang Anda inginkan dengan .vbsekstensi untuk memaksa Windows mengenalinya sebagai VBScript.

Pilihan:

  1. Simpan skrip di mana saja Anda mau.
  2. Buat pintasan ke skrip dan letakkan di folder Startup saja.
  3. Klik kanan pintasan dan pilih properti.
  4. Menggunakan tombol Ubah Ikon , ramban ke lokasi Outlook executable dan pilih ikon Outlook yang tersimpan di dalam executable.

Peningkatan performa:

Alih-alih menempatkan skrip atau jalan pintas ke skrip di folder Startup, registri dapat diedit untuk menjalankan skrip segera saat login.

  1. Ikuti langkah 1-4 di bagian Solusi di atas.
  2. Tempatkan skrip di mana saja Anda inginkan.
  3. Tambahkan Nilai String baru atau Nilai String yang Dapat Diperluas baru jika perlu ke kunci registri HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run.
  4. Beri nama apa pun yang Anda inginkan.
  5. Ubah nilai baru yang Anda buat dengan jalur ke skrip.
Jason
sumber
Saya perhatikan Anda memiliki pengguna yang tidak terdaftar dan terdaftar - Anda dapat, dan tentu saja harus menggabungkannya dengan menggunakan tautan hubungi kami tepat di bagian bawah halaman
Journeyman Geek
Bekerja sangat baik dengan Windows 8.1 dan Office 2013! Satu-satunya hal yang perlu diubah adalah bahwa PATH_TO_OUTLOOK harus Office15 bukan Office14. Anda juga perlu menambahkan HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Preference\MinToTrayke registri dengan nilai 1.
Nate
Ketika saya menjalankan skrip ini secara manual dari folder Startup saya, itu memang mulai diminimalkan, tetapi ikon Outlook macet di taskbar saya. Saya hanya suka di baki saya. Ketika saya mengaktifkan Outlook dengan ikon taskbar dan kemudian menguranginya, itu pergi ke baki dan meninggalkan taskbar seperti yang diharapkan.
rolandow
@rolandow Masalah dengan ikon tetap di taskbar disebutkan di bagian pertama dari deskripsi masalah. Jika tidak berfungsi dengan benar, kemungkinan besar masalah waktu. Saya telah menemukan bahwa menambahkannya ke registri seperti yang disarankan biasanya menyelesaikan masalah waktu karena cara windows mengeksekusi item selama startup. Hal lain yang dapat Anda coba adalah mengubah nilai nilai Wscript.Sleep (XXX).
Jason
7

Outlook tidak memiliki fitur bawaan untuk ini, tetapi Anda dapat menggunakan startperintah:

  1. Buat pintasan di folder Startup Anda menunjuk yang mengeksekusi perintah

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

    atau file batch yang berisi perintah

    @start /min "" "FullPathOfOutlook.exe"
    
  2. Klik kanan ikon baki dan centang Sembunyikan saat diminimalkan .

Dennis
sumber
Tidak bekerja. Outlook masih mulai dimaksimalkan.
kinokijuf
Mungkin saya tidak jelas. Saya menggunakan metode di atas (dengan file batch) di komputer saya. Berhasil.
Dennis
Versi Outlook apa yang Anda miliki?
kinokijuf
Outlook 2007, tapi itu tidak masalah. Saya gunakan startuntuk meminimalkan banyak aplikasi startup, dan berfungsi dengan semuanya.
Dennis
Saya dapat mengkonfirmasi apa yang dikatakan Dennis. Pada mesin XP saya dengan Outlook 2003, saya menggunakan start /min "" "C:\Program Files\Microsoft Office\OFFICE11\OUTLOOK.exe"file batch di folder Startup dan terbuka diminimalkan ketika saya login. Saya melakukan hal yang sama dengan Win7 / Outlook 2010 saya, tetapi hanya jalur yang berbeda.
jb11
0

jika Anda dapat membuka pandangan dari baris perintah dengan mengetik outlook.exe, kemudian buat file batch termasuk kode ini start /b /min outlook.exedan letakkan di folder startup windows Anda.

Renju Chandran chingath
sumber
0

Saat menggunakan kutipan dengan perintah START pada Windows 7 dengan Outlook 2010, jendela perintah baru akan terbuka, tetapi Outlook tidak akan diluncurkan. Ini terjadi dengan versi Windows 7 Pro dan Enterprise edisi 32-bit (keduanya dengan pembaruan terkini). Saya tidak bisa mengatakan apakah itu terjadi dengan versi 64bit atau edisi lainnya.

Untuk mengatasi masalah itu, Anda harus menghilangkan tanda kutip yang mengelilingi "path \ program" yang ingin Anda luncurkan dengan perintah START. Namun, karena biasanya ada spasi dalam nama path, Anda kemungkinan akan menerima kesalahan yang berbeda kecuali jika Anda memotong path (mempersingkatnya). Nama terpotong di jalur dapat bervariasi jika Anda menginstal beberapa produk Microsoft. Untuk mendapatkan jalur terpotong yang benar, gunakan baris perintah berikut pada prompt DOS (dalam jendela CMD): UNTUK / D% T IN ("C: \ Program Files \ Microsoft Office \ Office14 \ Outlook") LAKUKAN ECHO% ~ sT

Berikut ini adalah contoh yang berfungsi untuk saya ketika menggunakan hasil yang diperoleh dari atas: MULAI / MIN C: \ Progra ~ 1 \ Micros ~ 1 \ Office14 \ Outlook

CATATAN: Office14 merujuk ke versi 2010 sedangkan Office12 merujuk ke versi 2007. Juga perhatikan bahwa .exe di akhir Outlook.exe tidak diperlukan di baris perintah ini.

Klaralina
sumber
Adakah alasan mengapa menurut Anda ini lebih baik start /min "" "FullPathOfOutlook.exe"?
Scott
0

Saya telah menggunakan kode di atas untuk waktu yang cukup lama dan ingin mengucapkan terima kasih kepada semua kontributor sebelumnya untuk berbagi pekerjaan / peningkatan / saran mereka. Namun baru-baru ini, saya telah mengalami dua masalah yang tidak disukai dan menjengkelkan ketika digunakan bersama dengan Windows 10 (64 Bit) dan Outlook 2016 (64 Bit) ini adalah:

  1. Ikon Outlook di System Tray menampilkan overlay 'cog' dengan pesan "Program lain menggunakan Outlook. Untuk memutus program dan keluar dari Outlook, klik ikon Outlook lalu klik Exit Now".

  2. Upaya untuk membuka Outlook dari menu konteks 'Open Outlook' (klik kanan ikon Outlook di baki) menyebabkan kotak dialog muncul melaporkan "Tidak ada objek penjelajah aktif yang ditemukan". Mengklik opsi "OK" dalam respons meluncurkan Outlook (meskipun masalah overlay 1-gigi) tetap ada.

Untuk menyelesaikan masalah di atas saya mulai mencari beberapa kode serupa yang dapat saya kompilasi untuk memenuhi tujuan yang diinginkan dari poster asli (yang mencerminkan kebutuhan saya sendiri).

Kode di bawah ini ditawarkan "sebagaimana adanya" untuk manfaat yang lebih luas dari SuperUsers lain, penting untuk dicatat bahwa sementara saya telah menguji kode pada dua sistem W10 64 Bit (keduanya dengan 64 Bit Office diinstal) saya masih harus menyelesaikan RunTime masalah pada satu sistem. Fungsi lainnya dengan sempurna. Detail lengkap dapat dilihat di sini jika diperlukan: /programming/45533261/start-outlook-2016-64-bit-automatically-minimised-to-windows-10-64-bit-syste

Saya akan membuat Anda menilai setiap perkembangan saat pengujian berlanjut .......

** Pembaruan Cepat ** Sekarang diuji pada Laptop HP Elitebook 8440P - Windows 10 Pro 64 Bit dengan Office 64 Bit + sama 12 Outlook Addons - Fungsi tanpa cacat sesuai persyaratan yang diuraikan dalam posting asli di atas .....

** Pembaruan Lebih Lanjut ** Diuji pada Laptop HP Elitebook 8440P kedua - Windows 10 Pro 64 Bit dengan Office 64 Bit + sama 12 Outlook Addons - Kesalahan RunTime dialami lagi :(

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.
Pilot PC
sumber
0

Saya melakukan beberapa pencarian dan tes dan akhirnya menemukan bahwa kode vbscript berikut berfungsi di laptop Win10 saya:

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

Atur saja sebagai tindakan di Penjadwal Tugas, dan lakukan seperti bagaimana Anda membuat aplikasi startup.

Aerix Chan
sumber
0

Saya suka jawaban teratas, tapi saya tidak suka itu ada di CScript ... Jadi saya membuatnya di PowerShell ...

Ini bekerja dengan sempurna dengan Windows 10 dan Office 365.

Warna diformat di sini: 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)
Noty Pyro
sumber