Inicie Outlook automáticamente en la bandeja

11

¿Hay alguna manera de iniciar Outlook automáticamente al iniciar sesión, pero minimizado en la bandeja del sistema (área de notificación)? No quiero que mi bandeja de entrada se muestre en mi cara cuando inicio mi PC, solo una notificación discreta cuando llegue un nuevo correo.

Estoy usando Outlook 2003, si eso importa.

Kinokijuf
fuente
1
Eche un vistazo a este artículo: support.microsoft.com/kb/251340
Reorx el
@Reorx hace de esto una respuesta
kinokijuf

Respuestas:

15

Outlook 2010 (x86) en Windows 7 (x64): inicie y minimice en la bandeja del sistema al iniciar

Sé que este hilo es algo viejo; sin embargo, una búsqueda en la web muestra numerosas cuentas de este problema y no he podido encontrar una que ofrezca una solución que funcione. Por alguna razón, las soluciones normales a este problema no funcionan en todos los casos.

Problema:

  • En el inicio de sesión inicial, el icono de Outlook permanece visible en la barra de tareas, lo que obliga a uno a restaurar la ventana y luego se minimiza manualmente antes de que Outlook se elimine de la barra de tareas.
  • Simplemente agregar el acceso directo de Outlook a la carpeta Inicio y seleccionar Ocultar cuando se minimiza en el menú contextual del icono de la bandeja de Outlook no resuelve el problema.
  • El uso del indicador / Min de un archivo por lotes o acceso directo tampoco funciona.

Solución:

  1. Abra Outlook manualmente y haga clic con el botón derecho en el icono de la bandeja de Outlook para verificar que Ocultar cuando está minimizado esté marcado.
  2. Cree un nuevo archivo de texto e inserte el siguiente código.

    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. ¡IMPORTANTE! Asegúrese de cambiar PATH_TO_OUTLOOKpara reflejar la ubicación real de su instalación.

  4. Cambie el nombre del archivo de texto a lo que desee con una .vbsextensión para obligar a Windows a reconocerlo como un VBScript.

Opcional:

  1. Almacene el script en cualquier lugar que desee.
  2. Cree un acceso directo al script y colóquelo en la carpeta de Inicio.
  3. Haga clic derecho en el acceso directo y seleccione propiedades.
  4. Usando el botón Cambiar icono , busque la ubicación del ejecutable de Outlook y seleccione el icono de Outlook almacenado dentro del ejecutable.

Mejora del rendimiento:

En lugar de colocar la secuencia de comandos o un acceso directo a la secuencia de comandos en la carpeta Inicio, el registro se puede editar para ejecutar la secuencia de comandos inmediatamente al iniciar sesión.

  1. Siga los pasos 1-4 en la sección Solución anterior.
  2. Coloque el guión en cualquier lugar que desee.
  3. Agregue un nuevo valor de cadena o un nuevo valor de cadena expandible si es necesario a la clave del registro HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run.
  4. Nómbralo como quieras.
  5. Modifique el nuevo valor que creó con la ruta al script.
Jason
fuente
Me doy cuenta de que tiene un usuario registrado y no registrado. Puede, y ciertamente debe fusionarlos mediante el enlace de contacto que se encuentra en la parte inferior de la página
Journeyman Geek
¡Funciona muy bien con Windows 8.1 y Office 2013! Lo único que debe cambiar es que PATH_TO_OUTLOOK debe ser Office15 en lugar de Office14. También debe agregar HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Preference\MinToTrayal registro con un valor de 1.
Nate
Cuando ejecuto este script manualmente desde mi carpeta de Inicio, comienza minimizado, pero el icono de Outlook está atascado en mi barra de tareas. Me gustaría solo en mi bandeja. Cuando activo Outlook con el icono de la barra de tareas y luego lo minimizo, se dirige a la bandeja y sale de la barra de tareas como se esperaba.
rolandow
@rolandow El problema con el icono que permanece en la barra de tareas se menciona en la primera parte de la descripción del problema. Si no funciona correctamente, lo más probable es que sea un problema de tiempo. Descubrí que agregarlo al registro como se sugiere generalmente resuelve cualquier problema de tiempo debido a la forma en que Windows ejecuta los elementos durante el inicio. Otra cosa que puede intentar es cambiar el valor del valor Wscript.Sleep (XXX).
Jason
7

Outlook no tiene una función integrada para esto, pero puede usar el startcomando:

  1. Cree un acceso directo en su carpeta de inicio señalando que ejecuta el comando

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

    o un archivo por lotes que contiene el comando

    @start /min "" "FullPathOfOutlook.exe"
    
  2. Haga clic derecho en el icono de la bandeja y marque Ocultar cuando esté minimizado .

Dennis
fuente
No funciona. Outlook todavía comienza maximizado.
kinokijuf
Quizás no estaba claro. Estoy usando el método anterior (con el archivo por lotes) en mi computadora. Funciona.
Dennis
¿Qué versión de Outlook tienes?
kinokijuf
Outlook 2007, pero eso no debería importar. Utilizo startpara minimizar muchas aplicaciones de inicio, y funciona con todas ellas.
Dennis
Puedo confirmar lo que dice Dennis. En mi máquina XP con Outlook 2003, lo uso start /min "" "C:\Program Files\Microsoft Office\OFFICE11\OUTLOOK.exe"en un archivo por lotes en la carpeta Inicio y se abre minimizado cuando inicio sesión. Hago lo mismo con mi Win7 / Outlook 2010, pero solo una ruta diferente.
jb11
0

si puede abrir Outlook desde la línea de comandos escribiendo outlook.exe, cree un archivo por lotes que incluya este código start /b /min outlook.exey colóquelo en la carpeta de inicio de Windows.

Chingath de Renju Chandran
fuente
0

Al usar comillas con el comando START en Windows 7 con Outlook 2010, se abrirá una nueva ventana de comando, pero Outlook no se iniciará. Esto sucede con las versiones de 32 bits de Windows 7 Pro y Enterprise (ambas con las actualizaciones más recientes). No puedo decir si sucede con versiones de 64 bits u otras ediciones.

Para resolver ese problema, debe omitir las comillas que rodean la "ruta \ programa" que desea iniciar con el comando START. Sin embargo, dado que generalmente hay espacios en el nombre de la ruta, es probable que reciba un error diferente a menos que trunca la ruta (acortarla). Los nombres truncados en la ruta pueden variar si tiene varios productos de Microsoft instalados. Para obtener la ruta truncada correcta, use la siguiente línea de comando en el indicador de DOS (en una ventana CMD): FOR / D% T IN ("C: \ Archivos de programa \ Microsoft Office \ Office14 \ Outlook") DO ECHO% ~ sT

Aquí hay un ejemplo que me funcionó cuando utilicé los resultados obtenidos anteriormente: START / MIN C: \ Progra ~ 1 \ Micros ~ 1 \ Office14 \ Outlook

NOTA: Office14 se refiere a la versión 2010, mientras que Office12 se refiere a la versión 2007. También tenga en cuenta que el .exe al final de Outlook.exe no es necesario en estas líneas de comando.

Klaralina
fuente
¿Hay alguna razón por la que piensas que esto es mejor que start /min "" "FullPathOfOutlook.exe"?
Scott
0

He usado el código anterior durante un tiempo considerable y me gustaría agradecer a todos los contribuyentes anteriores por compartir su trabajo / mejoras / sugerencias. Recientemente, sin embargo, he experimentado dos problemas desagradables e irritantes cuando se usa junto con Windows 10 (64 bits) y Outlook 2016 (64 bits), estos son:

  1. El icono de Outlook en la Bandeja del sistema muestra una superposición 'cog' con el mensaje "Otro programa está usando Outlook. Para desconectar programas y salir de Outlook, haga clic en el icono de Outlook y luego haga clic en Salir ahora".

  2. Los intentos de abrir Outlook desde el menú contextual 'Abrir Outlook' (haga clic con el botón derecho en el icono de Outlook en la bandeja) hacen que aparezca un cuadro de diálogo que informa "No se encontró ningún objeto explorador activo". Al hacer clic en la opción "Aceptar" en respuesta, se inicia Outlook (aunque el problema 1 - superposición de engranajes) permanece.

Para resolver los problemas anteriores, me puse a buscar un código similar que pudiera compilar para cumplir los objetivos deseados del póster original (que refleja mis propios requisitos).

El código siguiente se ofrece "tal cual" para el beneficio más amplio de otros Superusuarios, es importante tener en cuenta que si bien he probado el código en dos sistemas W10 de 64 bits (ambos con la oficina de 64 bits instalada) todavía tengo que resolver un RunTime emisión de uno de los sistemas. El otro funciona perfectamente. Los detalles completos se pueden ver aquí si es necesario: /programming/45533261/start-outlook-2016-64-bit-automatically-minimised-to-windows-10-64-bit-syste

Te mantendré al tanto de cualquier desarrollo a medida que continúen las pruebas .......

** Actualización rápida ** Ahora probado en la computadora portátil HP Elitebook 8440P - Windows 10 Pro 64 Bit con Office 64 Bit + mismos 12 complementos de Outlook - Funciona perfectamente según los requisitos descritos en la publicación original anterior .....

** Actualización adicional ** Probado en una segunda computadora portátil HP Elitebook 8440P - Windows 10 Pro 64 Bit con Office 64 Bit + los mismos 12 complementos de Outlook - Error RunTime experimentado nuevamente :(

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

Hice algunas búsquedas y pruebas y finalmente descubrí que el siguiente código vbscript funcionaba en mi computadora portátil 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

Simplemente configúrelo como una acción en el Programador de tareas y hágalo de la forma en que crea una aplicación de inicio.

Aerix Chan
fuente
0

Me gusta la respuesta principal, pero no me gusta que esté en CScript ... Así que lo hice en PowerShell ...

Funciona perfectamente con Windows 10 y Office 365.

Color formateado aquí: 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)
NotorioPyro
fuente