Программы Windows, называемые в настоящее время приложениями (lication), могут сохранять положение своего окна в файле или реестре.
Если кто-то знает, где находятся эти данные, их можно редактировать вручную в блокноте или редакторе реестра.
(неправильные записи реестра могут вызвать нестабильность или ошибки Windows)
Создание автоматизированного способа должно быть простым для тех, кто имеет немного навыков кодирования, и его можно запускать по мере необходимости (т.е. после повторного подключения монитора).
Это может быть сделано с помощью сценария действия, файла .bat или собственного приложения.
Заявки должны быть закрыты до этого, хотя для того, чтобы желаемые позиции были реализованы.
Другая возможность с возможностью "онлайн" (перезапуск приложения не требуется) была бы, если бы Windows позволяла получать доступ к окну одного процесса другим.
Подходом могут быть функции SendMessage и WindowProc.
(Я не уверен в этом моменте, если это относится только к потокам родительского приложения или может быть сделано также потоками других приложений ... и, конечно, требует хороших знаний в программировании для Windows)
https://msdn.microsoft.com/en-us/library/windows/desktop/ms644950%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
Отправляет указанное сообщение окну или окнам.
[...]
Если указанное окно было создано вызывающим потоком, оконная процедура вызывается немедленно как подпрограмма. Если указанное окно было создано другим потоком, система переключается на этот поток и вызывает соответствующую оконную процедуру.
Сообщение WM_Move https://docs.microsoft.com/en-us/windows/desktop/winmsg/wm-move
Отправляется после того, как окно было перемещено.
Окно получает это сообщение через функцию WindowProc.
https://msdn.microsoft.com/en-us/library/ms633573%28v=VS.85%29.aspx?f=255&MSPPError=-2147217396
Определяемая приложением функция, обрабатывающая сообщения, отправленные в окно.
[...]