Windows:在特定屏幕位置打开程序

时间:2015-08-21 19:44:01

标签: windows powershell batch-file vbscript

在工作中,我有一组批处理文件和脚本,我用它来自动化我需要在早上打开的所有程序(以及其他程序,以便在晚上关闭它们),以节省时间和精力。问题是,窗口全部在他们选择的任何位置打开,因为大多数信息都会在虚拟桌面上一夜之间被清除。

我看到人们谈论桌面管理器和其他程序,使这些任务更容易,但由于游戏的限制,我没有能力安装这样的程序。我也无权编辑注册表文件,我永远无法确定注册表文件是否保持不变或在晚上被擦除和重新映像。因此,在存储的先前位置重新打开似乎已经出局。这意味着AutoHotKeycmdow和大多数.exe计划选项都不在运行中。

基本上我正在寻找的是一种使用批处理文件或vbs重新定位打开的窗口或在特定位置打开窗口的方法。优选地,相对于屏幕的位置而不是其他窗口,因为我使用多个监视器。

我愿意使用PowerShell或其他可能的选项,但这些可能不属于我的经验范围。看起来我要问的是要么不存在要么不可能,但我希望也许有人有想法。我不介意复杂的代码,但我不知道从哪个人那里开始,有什么建议吗?

2 个答案:

答案 0 :(得分:0)

看起来好像有人在这里回答了这样的问题:

Other post on set many programs window size and position

您还可以使用C#并使用powershell中的cmdlet和c#作为后端映射PowerShell。这是c#中的一个例子,只是谷歌如何在powershell中制作cmdlet。

Example in c#

答案 1 :(得分:0)

批处理文件无法执行此操作。 VBScript可以使用Windows脚本宿主对象模型进行此操作。

Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run(strCommand, [intWindowStyle: See below], [bWaitOnReturn: TRUE/FALSE])
Set WshShell = Nothing

intWindowStyle值:

0 - 隐藏窗口并激活另一个窗口 1 - 激活并显示一个窗口。如果窗口最小化或最大化,系统会将其恢复到原始大小和位置。应用程序应在首次显示窗口时指定此标志。 2 - 激活窗口并将其显示为最小化窗口。 3 - 激活窗口并将其显示为最大化窗口 4 - 以最近的大小和位置显示窗口。活动窗口保持活动状态 5 - 激活窗口并以当前大小和位置显示窗口 6 - 最小化指定的窗口并激活Z顺序中的下一个顶级窗口 7 - 将窗口显示为最小化窗口。活动窗口保持活动状态 8 - 以当前状态显示窗口。活动窗口保持活动状态 9 - 激活并显示窗口。如果窗口最小化或最大化,系统会将其恢复到原始大小和位置。应用程序应在还原最小化窗口时指定此标志 10 - 根据启动应用程序的程序状态设置show-state。

不确定PowerShell。 :/