View Single Post
  #12  
Old 13-09-2014, 17:24
Razor12911's Avatar
Razor12911 Razor12911 is offline
Noob
 
Join Date: Jul 2012
Location: South Africa
Posts: 3,749
Thanks: 2,170
Thanked 11,206 Times in 2,307 Posts
Razor12911 is on a distinguished road
Hmm, don't know what you talking 'bout bro.
here is the code that I use.
result in in MegaBytes

and my results

type
PDisplay_Device = record
cb: DWord;
DeviceName: array [0..31] of char;
DeviceString: array [0..127] of char;
StateFlags: DWord;
DeviceID, DeviceKey: array [0..127] of char;
end;

function RoundUp(Num: Integer): Integer;
var i, k: Integer;
begin
i:= trunc(Num/64); k:= 64*i;
if (k<Num) then i:=i+1;
k:= 64*i; Result:= k;
end;

function VideoSize: Integer;
var
lpDisplayDevice: PDisplay_Device;
DeviceKey: String;
DeviceValue: Cardinal;
DeviceName: AnsiString;
begin
lpDisplayDevice.cb := SizeOf(lpDisplayDevice);
DeviceKey:= ''; n:= 0;
while not (EnumDisplayDevices(0, n, lpDisplayDevice, 0)and(lpDisplayDevice.StateFlags and 4 > 0))and(n < 127) do n:= n+1;
for n := 0 to 127 do DeviceKey:= DeviceKey + lpDisplayDevice.DeviceKey[n];
Delete(DeviceKey, Pos(Chr(0), DeviceKey), 127);
StringChange(DeviceKey, '\Registry\Machine\', '');
i := 1; DeviceValue := 0;
if RegQueryBinaryValue(HKLM, DeviceKey, 'HardwareInformation.MemorySize', DeviceName) then
for n := 1 to Length(DeviceName) do
begin
DeviceValue := DeviceValue + Ord(DeviceName[n])*i;
i := i*$100;
end else
if not RegQueryDWordValue(HKLM, DeviceKey, 'HardwareInformation.MemorySize', DeviceValue) then
RegQueryDWordValue(HKLM, DeviceKey + '\Info', 'VideoMemory', DeviceValue);
DeviceName:= '';
for n := 0 to 127 do DeviceName := DeviceName + lpDisplayDevice.DeviceString[n];
Delete(DeviceName, Pos( Chr(0), DeviceName ), 127);
Result:=RoundUp(DeviceValue/(1024*1024));
end;
Attached Images
File Type: jpg 1.jpg (46.1 KB, 77 views)

Last edited by Razor12911; 13-09-2014 at 17:29.
Reply With Quote