以下宏可能会为您解决问题。我做了上面提到的 WindowManager,重新编译它以适用于 Visual Studio 2008,但我仍然发现它有点不稳定。此外,我不使用 WindowManager 中的“自动应用布局”功能,因此这些宏非常适合我从双显示器工作切换到仅笔记本电脑工作。
Sub DualMonitorConfiguration_Save()
    SaveWindowConfiguration("Dual Monitor Layout")
End Sub
Sub DualMonitorConfiguration_Load()
    LoadWindowConfiguration("Dual Monitor Layout")
End Sub
Sub LaptopOnlyConfiguration_Save()
    SaveWindowConfiguration("Laptop Only Layout")
End Sub
Sub LaptopOnlyConfiguration_Load()
    LoadWindowConfiguration("Laptop Only Layout")
End Sub
Private Sub SaveWindowConfiguration(ByVal configName As String)
    Dim selectedConfig As WindowConfiguration
    selectedConfig = FindWindowConfiguration(configName)
    If selectedConfig Is Nothing Then
        selectedConfig = DTE.WindowConfigurations.Add(configName)
    End If
    selectedConfig.Update()
    DTE.StatusBar.Text = "Window configuration saved: " & configName
End Sub
Sub LoadWindowConfiguration(ByVal configName As String)
    Dim selectedConfig As WindowConfiguration
    selectedConfig = FindWindowConfiguration(configName)
    If selectedConfig Is Nothing Then
        MsgBox("Window Configuration """ & configName & """ not found.")
    Else
        selectedConfig.Apply()
        DTE.StatusBar.Text = "Window configuration applied: " & configName
    End If
End Sub
Private Function FindWindowConfiguration(ByVal name As String) As WindowConfiguration
    Dim selectedLayout As WindowConfiguration
    For Each config As WindowConfiguration In DTE.WindowConfigurations
        If config.Name = name Then
            Return config
        End If
    Next
    Return Nothing
End Function