2015-08-21 1082 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或其他類型的腳本可能有更好的選擇,但我也希望我錯過了我認識的更好的東西。 –

相關問題