Introducción
FindWindow: recupera un identificador de la ventana de nivel superior cuyo nombre de clase y nombre de ventana coinciden con las cadenas especificadas.
MoveWindow: Cambia la posición y las dimensiones de la ventana especificada. Para una ventana de nivel superior, la posición y las dimensiones son relativas a la esquina superior izquierda de la pantalla. Para una ventana secundaria, son relativas a la esquina superior izquierda del área de cliente de la ventana principal.
Start-Job: Inicia un trabajo en segundo plano de PowerShell.
Script
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
$Win32API = Add-Type -Name Funcs3 -Namespace Win32 -PassThru -MemberDefinition @' [DllImport("user32.dll", SetLastError = true)] public static extern IntPtr FindWindow(IntPtr lpClassName, string lpWindowName); [DllImport("user32.dll")] public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint); '@ Start-Job {powershell -command ' using assembly System.Windows.Forms using namespace System.Windows.Forms $Form = New-Object System.Windows.Forms.Form $Form.Text=\"Formulario\" $Form.Size=New-Object System.Drawing.Size(500,500) $Form.StartPosition=\"CenterScreen\" $Form.ShowDialog()'} Start-Sleep -Seconds 5 $intptr = $Win32API::FindWindow([IntPtr]::Zero, 'Formulario') $Win32API::MoveWindow($intptr, 100, 200, 300, 400, $true) |