Программное обеспечение

Есть ли команды в CMD или Powershell, с помощью которых можно менять расположение окна на мониторе?

К примеру, прописываешь команду, затем координаты X100 Y200. Windows 10
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class Win32 {
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string ClassName, IntPtr TitleApp);
}
public struct RECT
{
public int Left; // x position of upper-left corner
public int Top; // y position of upper-left corner
public int Right; // x position of lower-right corner
public int Bottom; // y position of lower-right corner
}
"@

# стартуем программу - если нужно
start notepad
sleep -Milliseconds 50

# определяем handle окна по классу
#"Notepad" это class окна, а не название программы, определяется через Spy++ или ControlViewer (AutoIT)
$h =[Win32]::FindWindow("Notepad",[IntPtr]::Zero)
# определяем handle окна по совпадению части заголовка
#$h = (Get-Process | where {$_.MainWindowTitle -match "Блокнот"}).MainWindowHandle

if ($h -eq [IntPtr]::Zero) {return "Окно программы не найдено"}
# получаем объект прямоугольника указанного окна
$rcWindow = New-Object RECT
[void][Win32]::GetWindowRect($h,[ref]$rcWindow)

# новые координаты окна
$left = 0
$top = 0

# определяем дефолтные размеры окна для передачи их в функцию
$WndWidth = $rcWindow.Right - $rcWindow.Left;
$WndHeight = $rcWindow.Bottom -$rcWindow.Top;
# перемещаем по новым координатам с первоначальными размерами; размеры также можно указать свои
[void][Win32]::MoveWindow($h, $left, $top, $WndWidth, $WndHeight, $true)
Ильмир Фатхуллин
Ильмир Фатхуллин
76 344
Лучший ответ
Александр Цыганков С блокнотом работает, но со сторонними программами, где приходится указывать путь - не срабатывает. Просто запускается программа без учета настроек координат. не подскажете, в чем дело?
нет
Осман И
Осман И
41 610

Похожие вопросы