Go Back   FileForums > Game Backup > PC Games > PC Games - CD/DVD Conversions > Conversion Tutorials

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 28-11-2014, 02:43
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
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);
Reply With Quote
The Following 2 Users Say Thank You to Razor12911 For This Useful Post:
Carldric Clement (28-11-2014), mausschieber (28-11-2014)
Sponsored Links
  #2  
Old 28-11-2014, 06:13
Carldric Clement's Avatar
Carldric Clement Carldric Clement is offline
Registered User
 
Join Date: Aug 2014
Location: Toboh, Sabah, Malaysia
Posts: 595
Thanks: 599
Thanked 656 Times in 233 Posts
Carldric Clement is on a distinguished road
Talking Unknown Identifier "n"!

Quote:
Originally Posted by Razor12911 View Post
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;]?
Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Conversion Designer/Installer Creator Razor12911 Conversion Tutorials 1613 03-10-2024 01:24
test my setup installer lhanz678 Conversion Tutorials 25 20-04-2016 05:39
Custom Installer (help test ) windows 8 Dante1995 Conversion Tutorials 4 07-07-2014 03:43



All times are GMT -7. The time now is 08:53.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
FileForums @ https://fileforums.com