Use this to get windows name
function WindowsName:
String;
var
EditionID,ProductName :
String;
Version: TWindowsVersion;
begin
if Version.NTPlatform
then
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion','ProductName', ProductName);
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion','EditionID', EditionID);
if Pos(EditionID, ProductName) <> 0
then
SetLength(ProductName,Pos(EditionID, ProductName) - 1)
else
ProductName:= ProductName + ' ';
StringChange(ProductName, 'Microsoft ', '');
if Version.ServicePackMajor <> 0
then
Result := ProductName + 'Service Pack ' + InttoStr(Version.ServicePackMajor)
else begin
SetLength(ProductName,Length(ProductName) - 1)
Result := ProductName;
end;
end else
Result := 'Unknown Operating System';
end;
how to use
System.Caption:=WindowName;
and use this to get video memory
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 EnumDisplayDevices(lpDevice, iDevNum: DWord;
var lpDisplayDevice: PDisplay_Device; dwFlags: DWord): Boolean;
external '
[email protected] Stdcall';
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 MBToGB(MB : Integer):
String;
begin
if Length(IntToStr(MB)) > 3
then
Result := Copy(IntToStr(MB), 0, Length(IntToStr(MB))-3) + '.' + Copy(IntToStr(MB), Length(IntToStr(MB))-2, 1) + ' GB'
else
Result := IntToStr(MB) + ' MB';
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;
how to use
VideoMem.Caption:=MBToGB(VideoSize);