2023-04-03 09:15:00
Как отобразить окно, полностью вышедшее за границы дисплея
Такая проблема возникла у моей коллеги. Кнопка приложения есть на панели задач, а при наведении курсора отображается эскиз окна. Но при клике на них окно не появляется на виду. Девушка самостоятельно догадалась, что окно находится за границами экрана Для начала она попробовала лежащие на поверхности решения.
Простой случай
Есть два с половиной основных пути:
Снэп. Если зажать клавишу Win и нажимать стрелки, например, ← или →, окно должно прилепиться к левому или правому краю дисплея.
Перемещение из меню заголовка окна. Последовательное нажатие Alt+Spacebar - ↓ (стрелка вниз) - Enter активирует перемещение окна. Дальше двигать стрелками или нажать стрелку и двигать мышь, пока окно не появится перед глазами.
Пункт "Расположить окна каскадом" (Cascade Windows) в контекстном меню панели задач. Способ предложил в чате Александр Рыжов после публикации поста. Замечу, что в Windows 11 это уже выпилили.
Это все не помогло, потому что у коллеги был...
Тяжелый случай
Проблема возникала с подключением к ВМ Hyper-V в режиме расширенного сеанса. Окно исчезало из виду после нажатия кнопки [ ] в панели подключения к ВМ, см. картинку↓ В этом случае фокус остается
внутри окна ВМ! Поэтому все сочетания клавиш отрабатывают в виртуальной ОС нежели применяются к окну подключения к ней То есть приемы из простого случая тут не срабатывали.
Ситуация дополнительно усложнялась тем, что ВМ крутилась на хосте, подключение к которому тоже осуществлялось по RDP - удаленка! Я подкинул еще пару простых танцев под бубен - отключение внешнего монитора от ноутбука и запрет расширенного сеанса в настройках Hyper-V. Они не решили проблему, но второе хотя бы давало возможность приступить к работе, пусть и лишь на одном дисплее.
Для решения проблемы мы подвинули окно с помощью #PowerShell! В топе Google легко нашлась тема на SuperUser с удобной функцией Set-Window.
Коллега сохранила скрипт с именем Set-Window.ps1 в папке Downloads и выполнила:
cd $env:userprofile\downloads
. .\Set-Window.ps1
Set-Window -ProcessName vmconnect -PassThru
На выходе было примерено так:
Id : 26220
ProcessName : vmconnect
Size : 1782,1012
TopLeft : 1914,1
BottomRight : 3296,883
Здесь TopLeft : 1914,1 означало, что окно сдвинуто на 1914 пикселей от левого края дисплея. При разрешении 1920х1080, окно почти полностью находилось за правым краем. Справа торчали лишь 6 пикселей, которые коллега не замечала.
Меняем позицию окна:
Set-Window -ProcessName vmconnect -x 100 -y 100
И оно выходит на видное место
2.1K viewsedited 06:15