[Setup]
AppName=DisplayResoltution
AppVerName=DisplayResoltution
DefaultDirName=DisplayResoltution
DisableStartupPrompt=true
Uninstallable=false
[Files]
;Source: "C:\util\innosetup\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
;Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"; Parameters: {code:GetParams}
[Code]
// Functions to get BPP & resolution
function DeleteDC (hDC: Integer): Integer;
external 'DeleteDC@GDI32 stdcall';
function CreateDC (lpDriverName, lpDeviceName, lpOutput: String; lpInitData: Integer): Integer;
external 'CreateDCA@GDI32 stdcall';
function GetDeviceCaps (hDC, nIndex: Integer): Integer;
external 'GetDeviceCaps@GDI32 stdcall';
Const
HORZRES = 8; //horizontal resolution
VERTRES = 10; //vertical resolution
BITSPIXEL = 12; //bits per pixel
PLANES = 14; //number of planes (color depth=bits_per_pixel*number_of_planes)
ASPECTX =11;
ASPECTY =11;
var
xres, yres, bpp, pl, tmp, xx, yy: Integer;
function InitializeSetup(): Boolean;
var
hDC: Integer;
begin
//get resolution & BPP
hDC := CreateDC('DISPLAY', '', '', 0 );
pl := GetDeviceCaps(hDC, PLANES);
bpp := GetDeviceCaps(hDC, BITSPIXEL);
xres := GetDeviceCaps(hDC, HORZRES); //horizontal resolution
yres := GetDeviceCaps(hDC, VERTRES); //vertical resolution
xx := GetDeviceCaps(hDC, ASPECTX); //vertical resolution
yy := GetDeviceCaps(hDC, ASPECTY); //vertical resolution
tmp := DeleteDC(hDC);
bpp := pl * bpp; //color depth
MsgBox( 'Current resolution is ' + IntToStr(xres) +
'x' + IntToStr(yres) +
' and color depth is ' + IntToStr( bpp ) + 'left'
, mbInformation, MB_OK );
Result := false;
end;
function GetParams(def: string): string;
var
sTemp : string;
begin
sTemp := 'xres=' + IntToStr(xres) + ' yres=' +IntToStr(yres);
result := sTemp;
end;
댓글 없음:
댓글 쓰기