컴퓨터 공부/Win32 API 프로그래밍

[5월 8일 1교시] 시스템 정보 2

려리군 2009. 5. 8. 15:03

시스템 정보

int WINAPI GetSystemMetrics(__in  int nIndex);

참고주소 : http://msdn.microsoft.com/en-us/library/ms724385(VS.85).aspx

윈도우즈 화면 구성이나 설정 상태에 대한 수치값을 얻는다.

nIndex : 얻고 싶고자 하는 정보.

리턴 : 얻는 정보의 수치값.


BOOL WINAPI SystemParametersInfo(__in     UINT uiAction, __in     UINT uiParam, __inout  PVOID pvParam, __in     UINT fWinIni);

참고주소 : http://msdn.microsoft.com/en-us/library/ms724947.aspx

 - action : 동작 지정, 설정 또는 조사. Set or Get

 - param : 설정 값을 보낼 때

 - PVOID pvParam : 설정 값을 받아올 때 사용.

 - UINT fWinIni : 플래그 값. WM_SETTINGCHANGE 메세지를 모든 윈도우에게 보낼 지 여부 등을 결정.


시간

void WINAPI GetSystemTime(__out  LPSYSTEMTIME lpSystemTime);

참고주소 : http://msdn.microsoft.com/en-us/library/ms724390(VS.85).aspx

현재 UTC기준으로 시스템 날짜와 시간을 얻는다. 

void WINAPI GetLocalTime(__out  LPSYSTEMTIME lpSystemTime);

참고주소 : http://msdn.microsoft.com/en-us/library/ms724338(VS.85).aspx

현재 내가 사용하는 컴퓨터의 시스템 날자와 시간을 얻는다.

BOOL WINAPI SetSystemTime(__in  const SYSTEMTIME *lpSystemTime);

참고주소 : http://msdn.microsoft.com/en-us/library/ms724942(VS.85).aspx

UTC기준으로 시스템 날자와 시간을 설정한다.

BOOL WINAPI SetLocalTime(__in  const SYSTEMTIME *lpSystemTime);

참고주소 : http://msdn.microsoft.com/en-us/library/ms724936(VS.85).aspx

시스템 날짜와 시간을 설정한다.


FILETIME

typedef struct _FILETIME {
  DWORD dwLowDateTime;
  DWORD dwHighDateTime;
} FILETIME, *PFILETIME;

1601년 1월 1일 자정(UTC)을 기준으로 경과한 시간 표현(단위는 1/1000만초)


BOOL WINAPI GetFileTime(__in       HANDLE hFile, __out_opt  LPFILETIME lpCreationTime, __out_opt  LPFILETIME lpLastAccessTime,  __out_opt  LPFILETIME lpLastWriteTime);

참고주소 : http://msdn.microsoft.com/en-us/library/ms724320(VS.85).aspx

파일의 생성시간, 최근 접근 시간, 최근 수정시간을 FILETIME형으로 얻는다.


BOOL WINAPI SetFileTime(__in      HANDLE hFile, __in_opt  const FILETIME *lpCreationTime, __in_opt  const FILETIME *lpLastAccessTime, __in_opt  const FILETIME *lpLastWriteTime);

참고주소 : http://msdn.microsoft.com/en-us/library/ms724933(VS.85).aspx

파일의 생성시간, 최근 접근 시간, 최근 수정시간을 FILETIME으로 설정한다.


BOOL WINAPI FileTimeToSystemTime(__in   const FILETIME *lpFileTime,__out  LPSYSTEMTIME lpSystemTime);

참고주소 : http://msdn.microsoft.com/en-us/library/ms724280(VS.85).aspx

FILE형태의 시간을 시스템 형태의 시간(UTC)으로 변환한다.


BOOL WINAPI SystemTimeToFileTime(__in   const SYSTEMTIME *lpSystemTime, __out  LPFILETIME lpFileTime);

참고주소 : http://msdn.microsoft.com/en-us/library/ms724948(VS.85).aspx

시스템 형태의 시간(UTC)을 FILE형태의 시간으로 변환한다.


BOOL WINAPI FileTimeToLocalFileTime(__in   const FILETIME *lpFileTime, __out  LPFILETIME lpLocalFileTime);

참고주소 : http://msdn.microsoft.com/en-us/library/ms724277(VS.85).aspx

FILE 형태의 시간을 시스템 형태의 시간(컴퓨터 설정, 지역 시간)으로 변환한다.


BOOL WINAPI LocalFileTimeToFileTime(__in   const FILETIME *lpLocalFileTime, __out  LPFILETIME lpFileTime);

참고주소 : http://msdn.microsoft.com/en-us/library/ms724490.aspx

시스템 형태의 시간(컴퓨터 설정, 지역 시간)을 FILE 형태의 시간으로 변환한다.


틱카운트

운영체제가 부팅한 이후의 경과한 시간.

1/1000초 단위로 기록.


고해상도 타이머

BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);

참고주소 : http://msdn.microsoft.com/en-us/library/ms644905(VS.85).aspx

CPU 클럭수를 조사함.


BOOL QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount);

참고주소 : http://msdn.microsoft.com/en-us/library/ms644904(VS.85).aspx

흘러간 시간을 카운트함. (CPU클럭 하나당 +1)