0

我想编写一个脚本来组织我当前在屏幕上打开的窗口。

例如:将所有浏览器移动到监视器 1,将其他所有浏览器移动到监视器 2 例如:使监视器 1 上的 4 个最大化窗口分别在屏幕上占据相同大小的象限等。

我认为 VBScript 会对此有好处吗?在 Win7 环境中我会为此使用什么对象?

4

2 回答 2

3

这在开箱即用的 VBScript 中是不可能的,因为它不提供对用于窗口管理的 Windows API 的访问。

AutoIt似乎是一个更好的工具。查看以下函数和宏:

  • WinMove- 移动窗口
  • _WinAPI_GetSystemMetrics(80)- 获取显示器数量
  • @DesktopWidth@DesktopHeight- 主监视器像素大小
  • _WinAPI_GetSystemMetrics(78)_WinAPI_GetSystemMetrics(79)- 完整的桌面宽度和高度

如果监视器尺寸不同,您可以使用 WMI 类Win32_DesktopMonitor及其ScreenWidthScreenHeigth属性来获取单独的监视器尺寸。

于 2013-01-11T14:29:58.830 回答
1

我不确定我是否会说 VBS 对此有好处,我认为我更喜欢 C++,因为它会涉及我认为在 C++ 中更容易的 Windows API 调用,但这取决于你的技能和 VBS可能没问题。

我要查看的 API 调用将是EnumWindowsFindWindow来查找要移动的窗口,然后是SetWindowPos来移动它们。

我认为,如果您想将它们移动到辅助监视器,您应该能够通过将其移动到主监视器之外的位置来做到这一点(例如,如果辅助监视器在左侧扩展,则可能是负位置)。为此,您需要能够找出当前分辨率以及我认为您可以从 WMI 类Win32_VideoController获得的分辨率。

于 2013-01-11T09:23:39.507 回答