如何在VBScript中获取/设置每个应用程序窗口的位置和大小?

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

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

我认为VBScript会对此有好处? 我将在Win7环境中使用哪些对象?

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

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

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

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

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

我会看的API调用将是EnumWindows或FindWindow找到你想要移动的窗口,然后SetWindowPos移动它们。

我认为,如果你想把它们移动到辅助监视器上,你应该可以把它移动到主监视器以外的位置(例如,如果辅助监视器在左边扩展,可能是负的位置)。 要做到这一点,你需要能够找到当前的解决方案,我认为你可以从WMI类Win32_VideoController获得 。