Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
[소스구함] CUP, BIOS의 시리얼번호나 Product ID를..
CUP랑 BIOS의 시리얼번호나 Product ID를 알구 싶은데 어떨게 해야 하나요...
CPU의 벤더는 구할수 있는데 고유의 시리얼번호는 없나요..?
또, BIOS의 날짜나 버전은 나오는데 시리얼은 어떻게 구하나요..
즉 CPU랑 BIOS의 고유의 번호를 체크하구 싶은데 소스나 팁이 있는분은
갈켜주세요..
1
COMMENTS
김영대
•
1999.04.15 20:12
> 이영일 wrote:
> CUP랑 BIOS의 시리얼번호나 Product ID를 알구 싶은데 어떨게 해야 하나요...
> CPU의 벤더는 구할수 있는데 고유의 시리얼번호는 없나요..?
> 또, BIOS의 날짜나 버전은 나오는데 시리얼은 어떻게 구하나요..
> 즉 CPU랑 BIOS의 고유의 번호를 체크하구 싶은데 소스나 팁이 있는분은
> 갈켜주세요..
>
안녕하세요 김영대입니다
대부분의 CPU 에는 serial number 가 없는걸로 알고 있습니다
BIOS 에도 copyright, release date, version number 등등의 자료가 있습니다
혹시 각 시스템의 유일한 식별자를 찾으신다면 제한적일수는 있지만
HDD의 Volume Serial Number 를 사용하시거나 아니면
Network 카드의 MAC address 를 사용해 보세요
아래는 시스템 정보를 읽어오는 소스인데 참고해 보세요
unit GetInfo;
interface
uses
Windows, Messages, SysUtils, Classes, Registry;
type
SystemInfoRecord = record
VolumeName, // 디스크 볼륨명
VolumeSerial, // 디스크 시리얼번호
FileSystemName, // 파일구조
Drives : shortstring;// 디스크명들
ProcessorType : shortstring;// CPU 타입(MMX나 P-II는 안됨)
Version, // 원도우 버전
Plattform : shortstring;// 원도우 종류
PlattId : DWORD; // 현 플랫폼 ID
ComputerName, // 컴퓨터 이름
FPU, // FPU 유무
UserName, // 사용자 이름
CompanyName, // 회사이름
CDSerial : shortstring;// 원도우 시디 시리얼번호
TotalPhys, // 총 메모리
AvailPhys, // 이용할 수 있는 메모리
TotalVirtual, // 총 가상메모리
AvailVirtual, // 이용할 수 있는 가상메모리
MemoryLoad : DWORD; // 메모리 적재율
BiosDate, // 마더보더의 바이오스 날짜
BiosName, // 마더보더의 바이오스 이름
BiosVer, // 마더보더의 바이오스 버전
BusType, // 버스타입
CPU, // 바이오스에 나타난 CPU종류
MachineType : shortstring;// 바이오스에 나타난 컴종류
end;
var
SysInfoRec: SystemInfoRecord;
function GetAllSystemInfo: SystemInfoRecord; stdcall;
implementation
var
OSVerInfo: TOSVersionInfo;
function GetRegStr(Key, St: string): string;
begin
with TRegistry.Create do
try
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey(Key, False) then result := ReadString(St);
finally
Free;
end;
end;
procedure GetComputerName;
var
Computer : PChar;
CSize : DWORD;
begin
CSize := MAX_COMPUTERNAME_LENGTH + 1;
try
GetMem( Computer, CSize );
if Windows.GetComputerName( Computer, CSize ) then
SysInfoRec.ComputerName := Computer;
finally
FreeMem( Computer );
end;
end;
procedure GetVolumeInfo;
var
lpRootPathName : PChar;
lpVolumeNameBuffer : PChar;
nVolumeNameSize : DWORD;
lpVolumeSerialNumber : DWORD;
lpMaximumComponentLength : DWORD;
lpFileSystemFlags : DWORD;
lpFileSystemNameBuffer : PChar;
nFileSystemNameSize : DWORD;
begin
try
GetMem( lpVolumeNameBuffer, MAX_PATH + 1 );
GetMem( lpFileSystemNameBuffer, MAX_PATH + 1 );
nVolumeNameSize := MAX_PATH + 1;
nFileSystemNameSize := MAX_PATH + 1;
lpRootPathName := PChar( 'C:' );
if Windows.GetVolumeInformation( lpRootPathName,
lpVolumeNameBuffer,
nVolumeNameSize,
@lpVolumeSerialNumber,
lpMaximumComponentLength,
lpFileSystemFlags,
lpFileSystemNameBuffer,
nFileSystemNameSize ) then
begin
with SysInfoRec do begin
VolumeName := lpVolumeNameBuffer;
VolumeSerial := IntToHex(HiWord(lpVolumeSerialNumber), 4) + '-' +
IntToHex(LoWord(lpVolumeSerialNumber), 4);
FileSystemName := lpFileSystemNameBuffer;
end;
end;
finally
FreeMem( lpVolumeNameBuffer );
FreeMem( lpFileSystemNameBuffer );
end;
end;
procedure GetOSVersionInfo;
function Plat(Pl: DWORD): string;
begin
case Pl of
VER_PLATFORM_WIN32s: result := 'Windows 3.1';
VER_PLATFORM_WIN32_WINDOWS: result := 'Windows 95';
VER_PLATFORM_WIN32_NT: result := 'Windows NT';
else result := '???';
end;
end;
begin
with OSVerInfo, SysInfoRec do begin
dwOSVersionInfoSize := SizeOf(OSVerInfo);
if GetVersionEx(OSVerInfo) then;
Version := Format('%d.%d (%d.%s)',[dwMajorVersion, dwMinorVersion,
(dwBuildNumber and $FFFF), szCSDVersion]);
Plattform := Plat(dwPlatformId);
PlattID := dwPlatformId;
end;
end;
procedure GetDriveNames;
var
D1 : set of 0..25;
D2 : integer;
begin
DWORD( D1 ) := Windows.GetLogicalDrives;
with SysInfoRec do begin
Drives := '';
for D2 := 0 to 25 do
if D2 in D1 then
Drives := Drives + Chr( D2 + Ord( 'A' )) + ': ';
end;
end;
procedure GetSystemInfo;
var TmpStr: string;
MProc: string;
LocalSI: TSystemInfo;
const
PROCESSOR_INTEL_386 = 386;
PROCESSOR_INTEL_486 = 486;
PROCESSOR_INTEL_PENTIUM = 586;
PROCESSOR_MIPS_R4000 = 4000;
PROCESSOR_ALPHA_21064 = 21064;
begin
Windows.GetSystemInfo(LocalSI);
with LocalSI, SysInfoRec do begin
case dwProcessorType of
PROCESSOR_INTEL_386 : ProcessorType := ' 386';
PROCESSOR_INTEL_486 : ProcessorType := ' 486';
PROCESSOR_INTEL_PENTIUM : ProcessorType := ' Pentium';
PROCESSOR_MIPS_R4000 : ProcessorType := ' MIPS';
PROCESSOR_ALPHA_21064 : ProcessorType := ' ALPHA';
end;
end;
end;
procedure MemoryInfo;
var
MemStatus: TMemoryStatus;
begin
MemStatus.dwLength := SizeOf(MemStatus);
GlobalMemoryStatus(MemStatus);
with SysInfoRec do begin
TotalPhys := MemStatus.dwTotalPhys DIV 1024;
AvailPhys := MemStatus.dwAvailPhys DIV 1024;
TotalVirtual := MemStatus.dwTotalVirtual DIV 1024;
AvailVirtual := MemStatus.dwAvailVirtual DIV 1024;
MemoryLoad := MemStatus.dwMemoryLoad;
end;
end;
procedure GetRegisterInfo;
const
FPPKey = 'hardwareDESCRIPTIONSystemFloatingPointProcessor';
var
CurVerKey : PChar;
begin
with SysInfoRec do begin
case PlattID of
VER_PLATFORM_WIN32_WINDOWS :
CurVerKey := 'SOFTWAREMicrosoftWindowsCurrentVersion';
VER_PLATFORM_WIN32_NT :
CurVerKey := 'SOFTWAREMicrosoftWindows NTCurrentVersion';
else CurVerKey := nil;
end;
with TRegistry.Create do
try
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey(FPPKey, False) then
FPU := 'Yes'
else FPU := 'No';
finally
Free;
end;
UserName := GetRegStr(CurVerKey,'RegisteredOwner');
CompanyName := GetRegStr(CurVerKey,'RegisteredOrganization');
if PlattID = VER_PLATFORM_WIN32_WINDOWS then
CDSerial := GetRegStr(CurVerKey,'ProductID');
end;
end;
procedure GetBiosInfo;
begin
with SysInfoRec do begin
BiosDate := GetRegStr('EnumRoot*PNP0C01
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
최선기
•
1999.06.23 02:18
1
COMMENTS
/
0
LIKES
탐색기같이 생긴 검색화면 만들기?
모승열
•
1999.06.29 11:26
최선기 께서 말씀하시기를... > 아래 질문을 했는데.. 혹시나 이해 못 하실까봐 다시 합니다. > 제 질문...
박형진
1999.06.23 01:55
0
COMMENTS
/
0
LIKES
퀵레포트 미리보기 루프 빠져나오기
남윤혁
•
1999.04.15 22:13
4
COMMENTS
/
0
LIKES
텍스트 인쇄?
남윤혁
•
1999.04.16 02:34
-.-;; 무슨말인지 잘모르겠네요... 다시 정리해서 올립니다. 아래의 함수는 그리기 전용함수입니다. ...
남윤혁
•
1999.04.16 00:37
다시 질문입니다. 제가 XPI:= GetDeviceCaps( Canvas.Handle, LOGPIXELSX ); YPI:= GetDeviceCaps( ...
이정욱
•
1999.04.16 01:06
화면 출력 후 XPI := GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSX); YPI := GetDeviceCaps(Printe...
안치봉
•
1999.04.15 23:28
남윤혁 wrote: > 으아... 미치겠습니다. > > 인쇄를 하기 위해서 > > 매핑모드 바꾼거 까지는 좋았...
최선기
1999.06.23 01:54
0
COMMENTS
/
0
LIKES
TreeView로 검색화면 만들기가 가능한지?
Faster
•
1999.04.15 22:15
1
COMMENTS
/
0
LIKES
[요청]쩝... QuickReport 관련...
김영대
•
1999.04.16 18:42
> Faster wrote: > 출력물(QuickReport)에 대해 자세히 알고 싶습니다. > > 델파이 책중에 QuickReport...
신현숙
•
1999.06.23 00:46
1
COMMENTS
/
0
LIKES
Mdi Child 폼에 또다른 Mdi Child폼을 넣을수....
모승열
•
1999.06.29 11:24
신현숙 께서 말씀하시기를... > 안녕하세요.. > 질문이 있어서리~~ > ^^;; > > Mdi 폼에 mdi child ...
nuki
•
1999.06.23 00:01
1
COMMENTS
/
0
LIKES
스트링그리드에 입력을 하고 싶은데...
유수
•
1999.06.23 00:41
OnDrawCell 이벤트에서 직접 코딩을 해 주시면 됩니다. 이경우 현재 그려질 셀의 Canvas를 얻을...
남윤혁
•
1999.04.15 22:13
4
COMMENTS
/
0
LIKES
텍스트 인쇄?
남윤혁
•
1999.04.16 02:34
-.-;; 무슨말인지 잘모르겠네요... 다시 정리해서 올립니다. 아래의 함수는 그리기 전용함수입니다. ...
남윤혁
•
1999.04.16 00:37
다시 질문입니다. 제가 XPI:= GetDeviceCaps( Canvas.Handle, LOGPIXELSX ); YPI:= GetDeviceCaps( ...
이정욱
•
1999.04.16 01:06
화면 출력 후 XPI := GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSX); YPI := GetDeviceCaps(Printe...
안치봉
•
1999.04.15 23:28
남윤혁 wrote: > 으아... 미치겠습니다. > > 인쇄를 하기 위해서 > > 매핑모드 바꾼거 까지는 좋았...
bds
•
1999.06.22 23:47
1
COMMENTS
/
0
LIKES
입력할때 에러메세지2
유수
•
1999.06.23 00:36
키필드에 값이 지정되지 않아서 나는 에러입니다. 해당 테이블의 프라이머리 키필드는 반드시 값이 지...
ppyp
•
1999.06.22 23:13
2
COMMENTS
/
0
LIKES
quick report 3.0.4 에 대해서...
이영일
•
1999.04.15 19:10
CUP랑 BIOS의 시리얼번호나 Product ID를 알구 싶은데 어떨게 해야 하나요... CPU의 벤더는 구할수 있는데...
김영대
•
1999.04.15 20:12
> 이영일 wrote: > CUP랑 BIOS의 시리얼번호나 Product ID를 알구 싶은데 어떨게 해야 하나요... > CPU의...
이영일
•
1999.04.15 19:10
1
COMMENTS
/
0
LIKES
[소스구함] CUP, BIOS의 시리얼번호나 Product ID를..
CUP랑 BIOS의 시리얼번호나 Product ID를 알구 싶은데 어떨게 해야 하나요... CPU의 벤더는 구할수 있는데 고유의 시리얼번호는 없나요..? 또, BIOS의 날짜나 버전은 나오는데 시리얼은 어떻게 구하나요.. 즉 CPU랑 BIOS의 고유의 번호를 ...
김영대
•
1999.04.15 20:12
> 이영일 wrote: > CUP랑 BIOS의 시리얼번호나 Product ID를 알구 싶은데 어떨게 해야 하나요... > CPU의...
bds
•
1999.06.22 21:08
1
COMMENTS
/
0
LIKES
입력할때 에러메세지
최석기
•
1999.06.22 21:30
bds 께서 말씀하시기를... > 무더운 여름에 고생많으십니다. > DBMemo로 입력하려고 합니다. > DBMemo...
권순종
1999.06.22 21:02
0
COMMENTS
/
0
LIKES
네트워크에서 객체 전송 ?
이순희
•
1999.04.15 08:34
2
COMMENTS
/
0
LIKES
시간계산에 대하여
bluepine
•
1999.04.17 01:18
이순희 wrote: > 안녕하세요... > 테이블에 시작시간과 끝시간에 대한 두개의 필드가 있습니다. > 두개...
글쎄요.
•
1999.04.15 19:02
이순희 wrote: > 안녕하세요... > 테이블에 시작시간과 끝시간에 대한 두개의 필드가 있습니다. > 두개...
franco97
1999.06.22 20:46
0
COMMENTS
/
0
LIKES
[Q]oracle 에서 sql 오류결과를 보여주려고 하는데..
Ghost
1999.04.15 15:27
0
COMMENTS
/
0
LIKES
라우터의 IP를 공유하는 Host방식 전용선에서 Midas
장일형
1999.06.22 20:28
0
COMMENTS
/
0
LIKES
OLE자동화기법에 대해서 알려주세요
김영해
•
1999.04.15 08:49
3
COMMENTS
/
0
LIKES
화면보호기 같은 프로그램 ?
손용석
•
1999.06.22 19:58
이제 델파이를 배우기 시작한 초보생인데 어디엔가 델파이 한글 도움말이 있다고 들었는데 아무리...
이정욱
•
1999.04.15 10:21
아래 작업전환을 막는것이 있습니다. 이 코드는 나이렉스의 팁 게시판에서 가져왔습니다. var Form1:...
김영해
•
1999.04.17 07:48
감사합니다.이정욱님 많은 도움이 되었습니다.
이동화
•
1999.04.15 08:56
5
COMMENTS
/
0
LIKES
프린터에 대하여 부탁드림니다.
배재민
•
1999.06.22 19:36
엑세스를 이용하여 프로그램을 만들었습니다. 그리고 Delphi 4.0 CD에 있는 인스톨 쉴드 2.02를 이용하...
김영해
•
1999.04.15 09:20
이동화 wrote: > 안녕하세요! > 프린터에대해서 궁금한게 있습니다. 아니 지금 되지가 않습니다. > 프린...
김경수
•
1999.06.22 19:57
안녕하세요. 저도 그런적이 있었거든요. 근데 실제 설치할 컴퓨터(저같은경우 win95)에 access가 설치되...
이동화
•
1999.04.15 09:39
김영해 wrote: > 이동화 wrote: > > 안녕하세요! > > 프린터에대해서 궁금한게 있습니다. 아니 지금 되...
진은정
•
1999.06.22 19:54
InstallSheild인지 BDE인지, 하여간 DAO랑 잘 어울리질 못하더군요, 저도 이것때문에 무척 고생을 했...
강동연
•
1999.06.22 19:29
1
COMMENTS
/
0
LIKES
(질문)제발 좀 알려주세요. 코드 어디가 잘못되었는지..
섭
•
1999.06.22 20:13
강동연 께서 말씀하시기를... > 고수님들 부탁드립니다. > > 테이블 리스트의 내용을 파일에 저장할때 ...
이영일
1999/04/15 19:10
Views
252
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> CUP랑 BIOS의 시리얼번호나 Product ID를 알구 싶은데 어떨게 해야 하나요...
> CPU의 벤더는 구할수 있는데 고유의 시리얼번호는 없나요..?
> 또, BIOS의 날짜나 버전은 나오는데 시리얼은 어떻게 구하나요..
> 즉 CPU랑 BIOS의 고유의 번호를 체크하구 싶은데 소스나 팁이 있는분은
> 갈켜주세요..
>
안녕하세요 김영대입니다
대부분의 CPU 에는 serial number 가 없는걸로 알고 있습니다
BIOS 에도 copyright, release date, version number 등등의 자료가 있습니다
혹시 각 시스템의 유일한 식별자를 찾으신다면 제한적일수는 있지만
HDD의 Volume Serial Number 를 사용하시거나 아니면
Network 카드의 MAC address 를 사용해 보세요
아래는 시스템 정보를 읽어오는 소스인데 참고해 보세요
unit GetInfo;
interface
uses
Windows, Messages, SysUtils, Classes, Registry;
type
SystemInfoRecord = record
VolumeName, // 디스크 볼륨명
VolumeSerial, // 디스크 시리얼번호
FileSystemName, // 파일구조
Drives : shortstring;// 디스크명들
ProcessorType : shortstring;// CPU 타입(MMX나 P-II는 안됨)
Version, // 원도우 버전
Plattform : shortstring;// 원도우 종류
PlattId : DWORD; // 현 플랫폼 ID
ComputerName, // 컴퓨터 이름
FPU, // FPU 유무
UserName, // 사용자 이름
CompanyName, // 회사이름
CDSerial : shortstring;// 원도우 시디 시리얼번호
TotalPhys, // 총 메모리
AvailPhys, // 이용할 수 있는 메모리
TotalVirtual, // 총 가상메모리
AvailVirtual, // 이용할 수 있는 가상메모리
MemoryLoad : DWORD; // 메모리 적재율
BiosDate, // 마더보더의 바이오스 날짜
BiosName, // 마더보더의 바이오스 이름
BiosVer, // 마더보더의 바이오스 버전
BusType, // 버스타입
CPU, // 바이오스에 나타난 CPU종류
MachineType : shortstring;// 바이오스에 나타난 컴종류
end;
var
SysInfoRec: SystemInfoRecord;
function GetAllSystemInfo: SystemInfoRecord; stdcall;
implementation
var
OSVerInfo: TOSVersionInfo;
function GetRegStr(Key, St: string): string;
begin
with TRegistry.Create do
try
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey(Key, False) then result := ReadString(St);
finally
Free;
end;
end;
procedure GetComputerName;
var
Computer : PChar;
CSize : DWORD;
begin
CSize := MAX_COMPUTERNAME_LENGTH + 1;
try
GetMem( Computer, CSize );
if Windows.GetComputerName( Computer, CSize ) then
SysInfoRec.ComputerName := Computer;
finally
FreeMem( Computer );
end;
end;
procedure GetVolumeInfo;
var
lpRootPathName : PChar;
lpVolumeNameBuffer : PChar;
nVolumeNameSize : DWORD;
lpVolumeSerialNumber : DWORD;
lpMaximumComponentLength : DWORD;
lpFileSystemFlags : DWORD;
lpFileSystemNameBuffer : PChar;
nFileSystemNameSize : DWORD;
begin
try
GetMem( lpVolumeNameBuffer, MAX_PATH + 1 );
GetMem( lpFileSystemNameBuffer, MAX_PATH + 1 );
nVolumeNameSize := MAX_PATH + 1;
nFileSystemNameSize := MAX_PATH + 1;
lpRootPathName := PChar( 'C:' );
if Windows.GetVolumeInformation( lpRootPathName,
lpVolumeNameBuffer,
nVolumeNameSize,
@lpVolumeSerialNumber,
lpMaximumComponentLength,
lpFileSystemFlags,
lpFileSystemNameBuffer,
nFileSystemNameSize ) then
begin
with SysInfoRec do begin
VolumeName := lpVolumeNameBuffer;
VolumeSerial := IntToHex(HiWord(lpVolumeSerialNumber), 4) + '-' +
IntToHex(LoWord(lpVolumeSerialNumber), 4);
FileSystemName := lpFileSystemNameBuffer;
end;
end;
finally
FreeMem( lpVolumeNameBuffer );
FreeMem( lpFileSystemNameBuffer );
end;
end;
procedure GetOSVersionInfo;
function Plat(Pl: DWORD): string;
begin
case Pl of
VER_PLATFORM_WIN32s: result := 'Windows 3.1';
VER_PLATFORM_WIN32_WINDOWS: result := 'Windows 95';
VER_PLATFORM_WIN32_NT: result := 'Windows NT';
else result := '???';
end;
end;
begin
with OSVerInfo, SysInfoRec do begin
dwOSVersionInfoSize := SizeOf(OSVerInfo);
if GetVersionEx(OSVerInfo) then;
Version := Format('%d.%d (%d.%s)',[dwMajorVersion, dwMinorVersion,
(dwBuildNumber and $FFFF), szCSDVersion]);
Plattform := Plat(dwPlatformId);
PlattID := dwPlatformId;
end;
end;
procedure GetDriveNames;
var
D1 : set of 0..25;
D2 : integer;
begin
DWORD( D1 ) := Windows.GetLogicalDrives;
with SysInfoRec do begin
Drives := '';
for D2 := 0 to 25 do
if D2 in D1 then
Drives := Drives + Chr( D2 + Ord( 'A' )) + ': ';
end;
end;
procedure GetSystemInfo;
var TmpStr: string;
MProc: string;
LocalSI: TSystemInfo;
const
PROCESSOR_INTEL_386 = 386;
PROCESSOR_INTEL_486 = 486;
PROCESSOR_INTEL_PENTIUM = 586;
PROCESSOR_MIPS_R4000 = 4000;
PROCESSOR_ALPHA_21064 = 21064;
begin
Windows.GetSystemInfo(LocalSI);
with LocalSI, SysInfoRec do begin
case dwProcessorType of
PROCESSOR_INTEL_386 : ProcessorType := ' 386';
PROCESSOR_INTEL_486 : ProcessorType := ' 486';
PROCESSOR_INTEL_PENTIUM : ProcessorType := ' Pentium';
PROCESSOR_MIPS_R4000 : ProcessorType := ' MIPS';
PROCESSOR_ALPHA_21064 : ProcessorType := ' ALPHA';
end;
end;
end;
procedure MemoryInfo;
var
MemStatus: TMemoryStatus;
begin
MemStatus.dwLength := SizeOf(MemStatus);
GlobalMemoryStatus(MemStatus);
with SysInfoRec do begin
TotalPhys := MemStatus.dwTotalPhys DIV 1024;
AvailPhys := MemStatus.dwAvailPhys DIV 1024;
TotalVirtual := MemStatus.dwTotalVirtual DIV 1024;
AvailVirtual := MemStatus.dwAvailVirtual DIV 1024;
MemoryLoad := MemStatus.dwMemoryLoad;
end;
end;
procedure GetRegisterInfo;
const
FPPKey = 'hardwareDESCRIPTIONSystemFloatingPointProcessor';
var
CurVerKey : PChar;
begin
with SysInfoRec do begin
case PlattID of
VER_PLATFORM_WIN32_WINDOWS :
CurVerKey := 'SOFTWAREMicrosoftWindowsCurrentVersion';
VER_PLATFORM_WIN32_NT :
CurVerKey := 'SOFTWAREMicrosoftWindows NTCurrentVersion';
else CurVerKey := nil;
end;
with TRegistry.Create do
try
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey(FPPKey, False) then
FPU := 'Yes'
else FPU := 'No';
finally
Free;
end;
UserName := GetRegStr(CurVerKey,'RegisteredOwner');
CompanyName := GetRegStr(CurVerKey,'RegisteredOrganization');
if PlattID = VER_PLATFORM_WIN32_WINDOWS then
CDSerial := GetRegStr(CurVerKey,'ProductID');
end;
end;
procedure GetBiosInfo;
begin
with SysInfoRec do begin
BiosDate := GetRegStr('EnumRoot*PNP0C01