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);
Unknown Identifier "n"!
What is [n:= 0;]?
:rolleyes::cool: