use strict; use Win32::API; use constant HORZRES => 8; use constant VERTRES => 10; use constant BITSPIXEL => 12; use constant VREFRESH => 116; Win32::API->Import( "gdi32", "CreateDC", ['P', 'P', 'P', 'P'], 'N', ) or die "Can't import the CreateDC API:\n$!\n"; Win32::API->Import( "gdi32", "GetDeviceCaps", ['N', 'N'], 'N', ) or die "Can't import the GetDeviceCaps API:\n$!\n"; Win32::API->Import( "gdi32", "DeleteDC", ['N'], 'V', ) or die "Can't import the DeleteDC API:\n$!\n"; my $hdc = CreateDC("DISPLAY", 0, 0, 0); if(!$hdc) { die "ERROR: can't open display!\n"; } my %colors = ( 8 => "256 Color", 16 => "High Color", 24 => "True Color", 32 => "True Color", ); my $X = GetDeviceCaps($hdc, HORZRES); my $Y = GetDeviceCaps($hdc, VERTRES); my $BPP = GetDeviceCaps($hdc, BITSPIXEL); my $HZ = GetDeviceCaps($hdc, VREFRESH); print "${X}x$Y $colors{$BPP} ($BPP Bit)\n"; DeleteDC($hdc);