본문 바로가기

Delphi

CPU 사용량 체크 (Windows 2000, XP, Vista, 7)

기존에 웹에서 떠도는 소스는 Windows7을 정상적으로 지원하지 않더라구요
그래서 32비트에서는 정상적으로 동작하는듯 합니다만,
64비트 OS에서는 ntdll.dll 파일의 콜백 함수 NtQuerySystemInformation를 
호출하는 과정에서 SYSTEM_PERFORMANCE_INFORMATION 구조체를 
이용해서 CPU Idle time을 가져오는 부분이 정상적으로 동작하지 못해서
체크가 안되는 부분이 발생합니다.

이는 Windows7에서 SYSTEM_PERFORMANCE_INFORMATION 구조체의 
구조가 변경되어서라고 MSDN에는 코멘트가 달려 있더군요.
이를 보완하기 위해서 만들어진 코드를 첨부합니다.
이름모를 중국 사이트에서 가져왔습니다...만 저작권에 문제가 있는지는 잘 
모르겠네요 중국어를 못읽어서... =ㅅ=

위 파일을 이용하시면 되구요
사용 방법을 모르시겠다고 생각하시는 분은
제가 만든 샘플 프로그램을 이용하시면 되겠습니다