Este ejemplo demuestra cómo llamar a las API nativas de Windows en PowerShell. Add-Type usa el mecanismo Platform Invoke para llamar a una función en User32.dll desde PowerShell. Este ejemplo solo funciona en equipos que ejecutan el sistema operativo Windows.
En este caso, la variable $MouseEventSig almacena la firma C# de la función mouse_event. Para garantizar que el método resultante sea visible en una sesión de PowerShell, se agregó la palabra clave pública a la firma estándar.
El cmdlet Add-Type permite agregar funciones a una sesión de PowerShell como un método estático. El comando usa los parámetros Nombre y Espacio de nombres para especificar un nombre y un espacio de nombres para la clase. El parámetro PassThru genera un objeto que representa los tipos.
Pulsar en una posición de la pantalla de forma automática en Windows desde PowerShell
1 2 3 4 5 6 7 8 9 10 11 |
$MouseEventSig=@' [DllImport("user32.dll")]public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo); '@ $MouseEvent = Add-Type -MemberDefinition $MouseEventSig -Name "MouseEventWinApi" -PassThru [System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(29,1000) $mover = $MouseEvent::new() $mover::mouse_event(0x00000002, 0, 0, 0, 0) $mover::mouse_event(0x00000004, 0, 0, 0, 0) |