Outlook 视图:更改时,使用同一帐户的其他计算机也会更改!有什么好的解决方法吗?

Outlook 视图:更改时,使用同一帐户的其他计算机也会更改!有什么好的解决方法吗?

这个问题已经存在很多年了。我在许多计算机(笔记本电脑、主台式电脑等)的 Windows 10 上使用 Outlook(Office 365)。所有计算机上都使用同一个 Office 365 商业帐户。

在视图/“更改视图”中,我可以为收件箱选择一个好的视图,并为主题选择正确的宽度等等。但是,由于所有计算机的桌面分辨率都不同,我需要保存许多视图(顺便说一下,保存视图有其自身的错误)。

我保存并使用了一个名为 MainDesktop 的视图,用于一台计算机(高分辨率屏幕)。另一台计算机(低分辨率屏幕)使用 Laptop1。现在我在主计算机上打开 Outlook,看起来不错。然后我在笔记本电脑上打开 Outlook。现在笔记本电脑上强制使用 MainDesktop 视图,看起来很糟糕。然后,更改为 Laptop1,现在主计算机被迫使用 Laptop1 视图。

由于我不指望微软能解决这个问题,那么有什么好的解决方法吗?例如,我没有找到使用命令行参数打开 Outlook 并显示特定视图的方法。最后的办法是使用 AutoHotkey 在每次运行 Outlook 时更改视图,但我希望有更好的解决方案。

答案1

据我所知,如果您在 Outlook 客户端中使用 Exchange 电子邮件帐户,恐怕 Outlook 的设计就是始终自动同步不同客户端之间的视图。此外,根据我的测试,如果您更改 Outlook 客户端的语言,然后创建新的 Outlook 配置文件以重新添加您的电子邮件帐户,则视图设置可能无法与不同语言版本的其他 Outlook 客户端同步。试试看这是否有帮助。

答案2

我做了一个自动热键这个问题的解决方案。我们必须自己做这件事,这太奇怪了,Outlook 在完全不同的屏幕分辨率上强制使用相同像素大小的视图是没有意义的。

ChangeViewOutlook(keysDownRight:="{Down}{Right}") ; default is Home, Down, Right, Enter
{
    Sleep 1
    WinActivate ahk_class rctrl_renwnd32 ahk_exe outlook.exe ; the focus easily goes elsewhere, thus we have to make sure Outlook gets it
    temp=9000 ; timer in ms (actual time is longer due to possible slowness of this code)
    temp2=0
    Loop
    {
        IfWinExist, ahk_class rctrl_renwnd32 ahk_exe outlook.exe
            break
        Sleep 10
        temp2+=10
        If (temp2>=temp)
        {
            TrayTip Couldn't open Outlook,`n
        Return
        }
    }
    WinActivate ahk_class rctrl_renwnd32 ahk_exe outlook.exe
    WinWaitActive ahk_class rctrl_renwnd32 ahk_exe outlook.exe,, 8
    If ErrorLevel
    {
        TrayTip Couldn't open Outlook,`n
        Return
    }
    WinActivate ahk_class rctrl_renwnd32 ahk_exe outlook.exe
    Send !vcv{Home}%keysDownRight%{Enter} ; View, Change View, move the selector
    Send !h{Esc 2} ; go back to tab Home and clear the alt-tip-letters
}

+!h:: ; Microsoft Outlook launch/focus + Change View according to computer (workaround for Outlook's fixed view problem)
    ; Note! You have to launch Outlook with Win10_Open_Outlook.vbs when clicking an icon to Open Outlook
    ; when opening Outlook by mouse instead of keyboard. Otherwise the Change View won't be done.
    SetTitleMatchMode, RegEx
    WinActivate .*Outlook ahk_class rctrl_renwnd32
    IfWinExist, .*Outlook ahk_class rctrl_renwnd32
    {
        WinActivate .*Outlook ahk_class rctrl_renwnd32
    }
    Else
    {
      If InStr(A_ComputerName, "MyComputer1", false) ; false here means case insensitive
        {
            Run, "C:\Program Files (x86)\Microsoft Office\root\Office16\OUTLOOK.EXE"
            ChangeViewOutlook("{Down}{Right}")
        }
        Else If InStr(A_ComputerName, "MyComputer2", false)
        {
            Run, "C:\Program Files (x86)\Microsoft Office\root\Office16\OUTLOOK.EXE"
            ChangeViewOutlook("{Down}{Right 3}")
        }
        Else If InStr(A_ComputerName, "MyComputer3", false)
        {
            ComObjCreate( "Shell.Application" ).Windows.FindWindowSW( 0 , 0 , 8 , 0 , 1 ).Document.Application.ShellExecute( """C:\Program Files\Microsoft Office\root\Office16\OUTLOOK.EXE""" ) ; on certain setups, we have to load as non-elevated, not as an admin, because otherwise the quicksearch and drag'n'drop is crippled (this assumes that the .ahk was ran as admin)
            ChangeViewOutlook("{Down}")
        }
        Else
        {
            Run, "C:\Program Files\Microsoft Office\Office15\OUTLOOK.EXE"
            ChangeViewOutlook("{Down}{Right 2}")
        }
  }
  SetTitleMatchMode, 1 ; = STARTS WITH (back to default)
  Return

然后将其替换为 Outlook 图标的目标,Win10_打开_Outlook.vbs

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "+%h"
' Note: VBScript doesn't support # (WinKey) but +^ work fine, and alt is % (shift is +).

因此,您可以使用任意数量的计算机安装 Outlook,使用完全相同的配置文件,但每台计算机仍具有不同的自定义收件箱视图(此代码会根据计算机名称快速更改视图)。因此,您必须了解一些代码才能对其进行编辑以匹配您的系统。您必须为每台计算机创建并保存视图。根据计算机名称命名它们。然后,您的所有 Outlook 将在更改视图选择器中显示所有计算机的视图。然后使用 {Down}{Right}{Enter} 或类似键在那里选择视图。

正确配置后,您只需在每台计算机上打开 Outlook,脚本就会在 Outlook 加载后非常快速地将视图更改为正确的视图。

相关内容