PowerShell - Compatibilidad de codigos

 
Vista:
sin imagen de perfil
Val: 5
Ha mantenido su posición en PowerShell (en relación al último mes)
Gráfica de PowerShell

Compatibilidad de codigos

Publicado por won (3 intervenciones) el 16/10/2020 19:56:44
Buenas tardes:

Un saludo a todos
Y recurro a ustedes con una duda que no he logrado resolver. Ojala puedan apoyarme.

Encontré el código, que copio mas abajo, que sirve para obtener el color de un pixel, de una posición determinada. Y que va a ser de mucha utilidad para un programa que necesito desarrollar.

El problema es:

- Si lo ejecuto desde mi equipo W10, funciona perfecto.

- Pero donde necesito ejecutarlo es desde un Win Server 2008 r2. Cuando lo ejecuto ahí, obtengo el siguiente error:

No se encuentra el tipo [System.Drawing.Color]: asegúrese de que está cargado el ensamblado que contiene este tipo.
En C:\pixel2.ps1: 22 Carácter: 23
+ [System.Drawing.Color] <<<< ::FromArgb($PixelColorRef) | Select-Object B,G,R
+ CategoryInfo : InvalidOperation: (System.Drawing.Color:String) [], RuntimeException
+ FullyQualifiedErrorId : TypeNotFound



No se si es por la versión del Powershell (W10 = 5.1, Wserver = 2.0) o por el SO.

¿Podrían orientarme?

El código es este:


$GDI = Add-Type -MemberDefinition @'
[DllImport("user32.dll")]
static extern IntPtr GetDC(IntPtr hwnd);

[DllImport("user32.dll")]
static extern Int32 ReleaseDC(IntPtr hwnd, IntPtr hdc);

[DllImport("gdi32.dll")]
static extern uint GetPixel(IntPtr hdc,int nXPos,int nYPos);

static public int GetPixelColor(int x, int y)
{
IntPtr hdc = GetDC(IntPtr.Zero);
uint pixel = GetPixel(hdc, x, y);
ReleaseDC(IntPtr.Zero,hdc);

return (int)pixel;
}
'@ -Name GDI -PassThru

$PixelColorRef = $GDI::GetPixelColor(215,349)
[System.Drawing.Color]::FromArgb($PixelColorRef) | Select-Object B,G,R


Agradezco de antemano el apoyo que puedan darme.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder