2015-08-21 1086 views
1

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

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

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

我打算使用powershell或其他潜在的选项,但这些可能会超出我的经验。看来我所要求的是不存在或不可能的,但我希望也许有人有一个想法。我不介意复杂的代码,但我不知道从哪一个人开始,有什么建议?

+0

可能重复的[通过命令行设置应用程序的窗口位置](http://stackoverflow.com/questions/7977322/set-the-window-position-of-an-application-via-command -line) – Mofi

回答

0

批处理文件无法做到这一点。 VBScript可以使用Windows Script Host Object Model进行排序。

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 - 根据启动应用程序的程序的状态设置显示状态。

不确定PowerShell。 :/

+0

是的,问题在于大多数程序存储“最近的大小和位置”的方式取决于存储在可能随时被擦除的位置中的数据。我认为powershell或其他类型的脚本可能有更好的选择,但我也希望我错过了我认识的更好的东西。 –

相关问题