2015-08-21 2 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

Он похож кого-то, как уже ответить на этот вид вопрос здесь:

Other post on set many programs window size and position

Вы также можете использовать C# и карту на PowerShell его с помощью командлета в Powershell и C# в качестве внутреннего интерфейса. Вот пример в C# и просто Google, как сделать командлет в powershell.

Example in c#

0

Пакетные файлы не могут сделать это. VBScript может сделать это с помощью объектной модели хоста Windows Script.

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 на основе состояния программы, которая запускала приложение.

Не уверен в PowerShell. :/

+0

Да, проблема в том, как большинство программ сохраняют «самый последний размер и положение», зависит от данных, хранящихся в местах, которые можно стереть в любое время. Я думал, что PowerShell или некоторые другие сценарии могут иметь лучшие варианты, но я также надеялся, что я пропущу что-то в тех, кого знаю лучше. –

Смежные вопросы