5

我使用笔记本电脑作为我的主要工作站。有时我独自工作,但大部分时间,我在办公桌前,连接外接显示器以增加工作空间。

每次执行此操作时,我都会单击 Windows Vista 中的相同对话框来设置双屏并定位窗口。这似乎是一项我可以自动化的可重复任务。

我希望能够插入我的显示器电缆,双击一个程序并让它自动配置显示器。

什么类型的程序可以做到这一点?我在网上没有找到太多相关的。我正在考虑尝试使用自动热键脚本或带有 PowerShell 的 Windows 可访问性 API。这个问题已经解决了吗?

澄清:我特别希望自动化我使用鼠标调用 Windows Vista 中的基本功能的步骤。

  1. 右键单击桌面
  2. 在上下文菜单中选择个性化
  3. 点击显示设置
  4. 单击监视器#2,然后单击复选框以“将桌面扩展到此监视器”
  5. 单击并将监视器#2 拖到监视器#1 的左侧
  6. 单击确定关闭对话框
  7. 在随后的弹出窗口中单击是以接受这些监视器设置

更新:Windows 7 会自动执行此操作

我刚刚升级到 Windows 7,它记住了我的双显示器设置。我在上面列出的工作中设置了一次,然后在周末拔掉电源并在家工作。我周一早上进来,开机,插上电源,哇!它刚刚奏效。感谢 Windows 7!

4

6 回答 6

1

我还没有看到执行此操作的现有实用程序,但使用 Win32 API 编写一个非常容易。通过此页面EnumDisplayDevices获取显示设备列表,EnumDisplaySettingsEx获取当前设置,ChangeDisplaySettingsEx将进行更改。

DEVMODE.dmPosition 字段应包含显示器左上角的虚拟坐标,主显示器始终为 (0,0),其他相对于该坐标。

该工具需要两种模式,第一种将当前设置保存到配置文件,第二种应用配置中的设置。我只存储/检索 ChangeDisplaySettingsEx 文档中提到的显示设备索引、名称和每个 DEVMODE.dm* 字段。基于文本的配置允许手动编辑。

于 2009-03-29T13:04:14.060 回答
0

尝试UltraMon以获得出色的双显示器支持。多年来,我一直在许多不同的笔记本电脑和台式机上使用它,并且效果很好。我只使用过 XP,所以我不确定它如何与 Vista 配合使用。

于 2009-02-27T19:13:19.743 回答
0

我的 Leovo T60p 无需任何特殊步骤即可自动执行此操作。尝试升级您的视频驱动程序,并检查制造商的网站是否有任何可以执行此操作的实用程序。

于 2009-02-27T19:30:53.677 回答
0

如果你有 windows vista 或 7,你可以点击 windows_key + P。你有很多选项可供选择,包括扩展

于 2009-03-10T16:34:26.710 回答
0

我相信 Ultramon 实际上会起作用。在系统托盘中 Ultramon 图标的右键菜单中,有一个“禁用/启用辅助”命令。

我想你可以简单地:

  1. 插入第二台显示器
  2. 选择“启用辅助”
于 2009-03-29T12:35:34.457 回答
0

三年后,我在这里回答我自己的问题!耶!!!

这很容易用http://www.autohotkey.com编写脚本

这是一个示例脚本,用于在一台显示器和两台使用 Windows+1 和 Windows+2 的显示器之间进行交换。AutoHotKey 还允许交换第二个监视器的位置所需的单击和拖动行为。

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
#Warn  ; Recommended for catching common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
#1::
Send {LWin}
WinWaitActive Start menu
Send Adjust Screen Resolution
Send {enter}
WinWaitActive Screen Resolution
ControlClick ComboBox3
Send {PgDn}
Send {Up} ; Select "Show desktop only on 1"
Send {enter}
Sleep 3000 ; workaround - cannot select accept/revert window?
Send {left}
Send {enter} ; accept changes
Return
#2::
Send {LWin}
WinWaitActive Start menu
Send Adjust Screen Resolution
Send {enter}
WinWaitActive Screen Resolution
ControlClick ComboBox3
Send {PgDn}
Send {Up}
Send {Up} ; Select "Extend these displays"
Send {enter}
Sleep 3000 ; workaround - cannot select accept/revert window?
Send {left}
Send {enter} ; accept changes
Return
于 2012-03-22T18:30:52.767 回答