시스템 정보 알아보기
CPU, OS, Memory, Hardware, Software의 정보들이 있는 레지스트리 정보입니다
CPU
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\???
프로세서 ProcessorNameString
Identifier Identifier
속도 ~MHz (NT)
// CPU속도 측정
function GetCPUMHz: Double;
var
TimerHi, TimerLo: DWORD;
PriorityClass, Priority: Integer;
begin
PriorityClass := GetPriorityClass( GetCurrentProcess );
Priority := GetThreadPriority( GetCurrentThread );
SetPriorityClass( GetCurrentProcess, REALTIME_PRIORITY_CLASS );
SetThreadPriority( GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL );
Sleep(10);
asm
DW 310Fh
MOV TimerLo, EAX
MOV TimerHi, EDX
end;
Sleep( 500 );
asm
DW 310Fh
SUB EAX, TimerLo
SBB EDX, TimerHi
MOV TimerLo, EAX
MOV TimerHi, EDX
end;
SetThreadPriority( GetCurrentThread, Priority );
SetPriorityClass( GetCurrentProcess, PriorityClass );
Result := TimerLo / ( 1000 * 500 );
end;
OS 정보
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
OS 종류 ProductName
Version CurrentVersion+"."+CurrentBuildNumber (NT)
VersionNumber (98)
CSDVersion CSDVersion (서비스팩/NT)
OS 디렉토리 SystemRoot
사용자 RegisteredOwner
사용자회사 RegisteredOrganization
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName
컴퓨터 이름 ComputerName
프로그램 설치 정보 (Unstall 기능 있는 것만)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\????
표시 이름 DisplayName
메모리 관련
procedure WriteMemState;
var
MemStat : TMemoryStatus;
begin
MemStat.dwLength := sizeof(TMemoryStatus);
GlobalMemoryStatus(MemStat);
with MemStat do
begin
ShowMessageFmt('Memory : %d KB',[Trunc(dwTotalPhys/1024)]);
//총메모리
ShowMessageFmt('Available : %d KB',[Trunc(dwAvailPhys/1024)]);
//MemAvailable
ShowMessageFmt('Used : %d %%',[100 - Trunc(dwAvailPhys/dwTotalPhys*100)]);
//사용메모리
ShowMessageFmt('SwapFileSetting : %d KB',[Trunc(dwTotalPageFile/1024)]);
//SwapFileSetting
ShowMessageFmt('SwapFileSize : %d KB',[Trunc((dwTotalPageFile-dwAvailPageFile)/1024)]);
//SwapFileSize
ShowMessageFmt('SwapFileUsed : %d %%',[100 - Trunc(dwAvailPageFile/dwTotalPageFile*100)]);
//SwapFileUsage
end;
end;
장비목록
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum 실제 장비 레지스트리 :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\?????\?????
장치종류 Class
기타장치 Unknown
네트워크 어댑터 Net
디스크 드라이브 DiskDrive
디스플레이 어댑터 Display
마우스 및 기타 포인팅 장치 Mouse
모니터 Monitor
범용 직렬 버스 컨트롤러 USB 사운드,비디오 및 게임 컨트롤러 Media
시스템 장치 System
컴퓨터 Computer
키보드 Keyboard
포트(COM 및 LPT) Ports
플로피 디스크 드라이브 FloppyDisk
플로피 디스크 컨틀롤러 fdc
DVD/CD-ROM 드라이브 cdrom IDE ATA/ATAPI 컨트롤러 hdc SCSI 및 RAID
컨트롤러 SCSIAdapter
'Delphi Tip > Windows' 카테고리의 다른 글
메모리 누수(memory leak) 체크 (0) | 2024.06.09 |
---|---|
마우스 포인터 좌표의 윈도우 정보얻기 (0) | 2024.03.01 |
시스템 커스(Help) 바꾸기 (0) | 2024.01.30 |
가상키 코드(Virtual Keys) (0) | 2023.07.11 |
SendMessage 함수를 활용한 윈도우 메시지 전송 방법 (0) | 2023.06.16 |
댓글