본문 바로가기
반응형

C & C++444

현재 메모리 정보 얻어오기 현재 메모리 정보 얻어오기 [ 메모리 정보 얻어오기 ] 메모리를 자주 사용하는 프로그램의 경우, out of memory를 일으키지 않도록 하기위해, 메모리를 체크해야합니다. 꼭 이럴 경우가 아니더라도, 기본적으로, 메모리의 이용은 어플리케이션의 부피가 커질수록 문제가 되겠죠. 여기서 API함수를 이용하여, 메모리의 상태를 얻어오는 방법을 알아보겠습니다. 먼저 사용될 API함수와 그 구조를 알아봅시다. void WINAPI GlobalMemoryStatus(LPMEMORYSTATUS lpBuffer); MEMORYSTATUS는 아래와 같은 구조를 갖게 됩니다. DWORD dwLength 32 고정 DWORD dwMemoryLoad 사용할수 있는 메모리비율 DWORD dwTotalPhys 물리적 메모리양 .. 2011. 11. 17.
윈도우 부팅모드 알아내기 윈도우 부팅모드 알아내기 [ 윈도우의 부팅모드를 알아봅시다 ] 윈도우를 부팅시 F8을 누른체 부팅을 할 경우, 몇가지 모드로 부팅이 가능합니다. 보통, 윈도우에 이상이 있을 경우 세이프모드로 부팅이 되게 됩니다. 이것을 판단하는 방법입니다. 부팅모드 정보 얻어오기 : 여기서 사용되는 함수는 Win32API함수이며 GetSystemMetrics함수를 사용합니다. 여기에 사용되는 인자는 SM_CLEANBOOT를 사용합니다. 이 인자에 대한 코드는 아래와 같습니다. SM_CLEANBOOT 기 능 0 정상적인 부팅일 경우 1 세이프 모드(네트워크는 서포트되지 않는다) 2 세이프 모드(네트워크에의 액세스 가능) 그러므로 다음과 같은 방식으로 코딩이 가능합니다. switch(GetSystemMetrics(SM_CL.. 2011. 11. 17.
CPU정보 얻어오기 CPU정보 얻어오기 [ CPU정보를 얻어보자 ] 여기서는 현재 CPU종류와 프로세스갯수, 그리고 CPU가 얼마나 사용되고 있는정도를 알아보겠습니다. 첫 번째것은 단순히 함수의 호출로 알 수 있지만, 후자의 경우는 레지스트리에 저장되는 값을 사용하게 됩니다. CPU의 종류와 프로세스 개수 알기 먼저 CPU의 종류와 프로세스 갯수를 알아보는 방법에 대해 알아보겠습니다. 이것 역시 단순히 API함수의 호출로 알 수가 있으므로, 그냥 서술하겠습니다. 이때 사용되는 함수는 GetSystemInfo라는 함수이며, 아래와 같은 구조를 이루고 있습니다. dwProcessorType CPU의 타입(자세한 것은 위의 코드 참조) dwNumberOfProcessors 유효한 CPU의 수 SYSTEM_INFO sysInfo;.. 2011. 11. 17.
API함수를 이용한 바탕화면 바꾸기 [ 임의로 바탕화면 바꾸기 ] ACDsee나 그림판에보면, 그림을 바탕화면으로 바꾸는 기능이 있죠 ? 이번에는 그걸 도전해 보겠습니다. 대부분의 API함수는 윈도우의 정보나 기능을 직접적으로 제어할 때 편리합니다. 바탕화면을 제어하는 것 역시 API함수를 이용할 수 있습니다. 함 보시죠~ 바탕화면 바꾸기 함수를 맹글어 보자 바탕화면을 제어하는 것은 레지스트리에서 관리합니다. 우선 코드를 보죠. void SetWallPaper(LPCTSTR pszFileName, int nTile) { HKEY hKey; static char tile[2]; long lRet; tile[0]='0'+nTile; tile[1]='\0'; lRet = ::RegOpenKeyEx(HKEY_CURRENT_USER, "Contro.. 2011. 11. 17.
API함수를 이용한 컴퓨터 사용자명 알아오기 [ 컴퓨터 사용자명 알아오기 ] 비싼 프로그램을 돌리다보면, 윈도우의 자기 이름이 나오는걸 많이 봤을껍니다. 상당히 당황하게되져..^^ 사용자명을 알아오기위해서는 API함수를 사용합니다. 그러므로, 클래스위치에 관계없이 아무데서나 호출이 가능합니다. char szUserName[100]; unsigned long dwLength=100; GetUserName(szUserName, &dwLength); // 이부분이 API함수입니다. 2011. 11. 17.
현재 내 컴퓨터에 어떤 프로그램이 실행중인가 ? 현재 내 컴퓨터에 어떤 프로그램이 실행중인가 ? [ 현재 내 컴퓨터에서 동작중인 프로그램 알아보기 ] 현재 자신의 컴퓨터상에 어떠한 프로그램이 동작중인지를 알고 싶을 때, 사용하는 방법을 소개하겠습니다. 시스템프로그래밍이 아닌 경우에는 별 소용이 없겠지만, 전체적인 프로그램 구조를 이해하는데 많은 도움이 될꺼라 믿습니다. ^O^ 먼저 현재의 윈도우의 핸들을 가져옵니다. HWND hWndDesktop; HWND hWnd; char szCaption[1025]=""; hWndDesktop=::GetDesktopWindow(); 일반적으로 어플리케이션은 데스크탑윈도우의 차일드로 취급이 됩니다. hWnd=::GetTopWindow(hWndDesktop); 데스크탑 윈도우로부터, 최초의 윈도우의 윈도우 핸들을 취.. 2011. 11. 17.
반응형