#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE g_hInst;
HWND hWndMain;
LPSTR lpszClass="GetSystemInfo";
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
,LPSTR lpszCmdParam,int nCmdShow)
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
g_hInst=hInstance;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=(WNDPROC)WndProc;
WndClass.lpszClassName=lpszClass;
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW | CS_VREDRAW;
RegisterClass(&WndClass);
hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
NULL,(HMENU)NULL,hInstance,NULL);
ShowWindow(hWnd,nCmdShow);
hWndMain=hWnd;
while(GetMessage(&Message,0,0,0)) {
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return Message.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
SYSTEM_INFO si;
char str[128];
char Arch[100], Level[100];
char KeyType[100];
int arFunc[]={0,10,12,10,12,10,24,7,8,9,10,11,12};
switch(iMessage) {
case WM_CREATE:
return 0;
case WM_PAINT:
hdc=BeginPaint(hWnd, &ps);
GetSystemInfo(&si);
wsprintf(str, "프로세서의 개수는 %d개 입니다", si.dwNumberOfProcessors);
TextOut(hdc,10,10,str,strlen(str));
switch (si.wProcessorArchitecture) {
case PROCESSOR_ARCHITECTURE_INTEL:strcpy(Arch, "Intel");break;
case PROCESSOR_ARCHITECTURE_MIPS:strcpy(Arch, "MIPS");break;
case PROCESSOR_ARCHITECTURE_ALPHA:strcpy(Arch, "Alpha");break;
case PROCESSOR_ARCHITECTURE_PPC:strcpy(Arch, "Power PC");break;
case PROCESSOR_ARCHITECTURE_UNKNOWN:strcpy(Arch, "알수없음");break;
}
switch (si.wProcessorLevel) {
case 3:strcpy(Level,"80386");break;
case 4:strcpy(Level,"80486");break;
case 5:strcpy(Level,"Pentium");break;
case 6:strcpy(Level,"Pentium Pro or Pentium II");break;
default:strcpy(Level,"기타");break;
}
wsprintf(str, "CPU 종류는 %s이며 레벨은 %s, 리비전은 %x입니다",
Arch, Level, si.wProcessorRevision);
TextOut(hdc,10,30,str,strlen(str));
switch (GetKeyboardType(0)) {
case 1:strcpy(KeyType, "IBM PC/XT or compatible(83 key)");break;
case 2:strcpy(KeyType, "Olivetti ICO(102 key)");break;
case 3:strcpy(KeyType, "IBM PC/AT (84 key)");break;
case 4:strcpy(KeyType, "IBM enhanced(101 or 102 key)");break;
case 5:strcpy(KeyType, "Nokia 1050");break;
case 6:strcpy(KeyType, "Nokia 9140");break;
case 7:strcpy(KeyType, "일본 키보드");break;
default:strcpy(KeyType, "기타 키보드");break;
}
wsprintf(str,"키보드 타입은 %s이며 서브 타입은 %d, 펑션키는 %d개입니다",
KeyType, GetKeyboardType(1), arFunc[GetKeyboardType(2)]);
TextOut(hdc,10,50,str,strlen(str));
EndPaint(hWnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE g_hInst;
HWND hWndMain;
LPSTR lpszClass="GetSystemInfo";
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
,LPSTR lpszCmdParam,int nCmdShow)
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
g_hInst=hInstance;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=(WNDPROC)WndProc;
WndClass.lpszClassName=lpszClass;
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW | CS_VREDRAW;
RegisterClass(&WndClass);
hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
NULL,(HMENU)NULL,hInstance,NULL);
ShowWindow(hWnd,nCmdShow);
hWndMain=hWnd;
while(GetMessage(&Message,0,0,0)) {
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return Message.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
SYSTEM_INFO si;
char str[128];
char Arch[100], Level[100];
char KeyType[100];
int arFunc[]={0,10,12,10,12,10,24,7,8,9,10,11,12};
switch(iMessage) {
case WM_CREATE:
return 0;
case WM_PAINT:
hdc=BeginPaint(hWnd, &ps);
GetSystemInfo(&si);
wsprintf(str, "프로세서의 개수는 %d개 입니다", si.dwNumberOfProcessors);
TextOut(hdc,10,10,str,strlen(str));
switch (si.wProcessorArchitecture) {
case PROCESSOR_ARCHITECTURE_INTEL:strcpy(Arch, "Intel");break;
case PROCESSOR_ARCHITECTURE_MIPS:strcpy(Arch, "MIPS");break;
case PROCESSOR_ARCHITECTURE_ALPHA:strcpy(Arch, "Alpha");break;
case PROCESSOR_ARCHITECTURE_PPC:strcpy(Arch, "Power PC");break;
case PROCESSOR_ARCHITECTURE_UNKNOWN:strcpy(Arch, "알수없음");break;
}
switch (si.wProcessorLevel) {
case 3:strcpy(Level,"80386");break;
case 4:strcpy(Level,"80486");break;
case 5:strcpy(Level,"Pentium");break;
case 6:strcpy(Level,"Pentium Pro or Pentium II");break;
default:strcpy(Level,"기타");break;
}
wsprintf(str, "CPU 종류는 %s이며 레벨은 %s, 리비전은 %x입니다",
Arch, Level, si.wProcessorRevision);
TextOut(hdc,10,30,str,strlen(str));
switch (GetKeyboardType(0)) {
case 1:strcpy(KeyType, "IBM PC/XT or compatible(83 key)");break;
case 2:strcpy(KeyType, "Olivetti ICO(102 key)");break;
case 3:strcpy(KeyType, "IBM PC/AT (84 key)");break;
case 4:strcpy(KeyType, "IBM enhanced(101 or 102 key)");break;
case 5:strcpy(KeyType, "Nokia 1050");break;
case 6:strcpy(KeyType, "Nokia 9140");break;
case 7:strcpy(KeyType, "일본 키보드");break;
default:strcpy(KeyType, "기타 키보드");break;
}
wsprintf(str,"키보드 타입은 %s이며 서브 타입은 %d, 펑션키는 %d개입니다",
KeyType, GetKeyboardType(1), arFunc[GetKeyboardType(2)]);
TextOut(hdc,10,50,str,strlen(str));
EndPaint(hWnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
'Windows > Windows API' 카테고리의 다른 글
os 버전알기 (GetVersionEx) (0) | 2013.10.01 |
---|---|
현재 시간 (GetLocalTime) (0) | 2013.10.01 |
실행시간 검사 (check run time) (0) | 2013.10.01 |
윈도우 가운데로 오기 (center window) (0) | 2013.10.01 |
capture (0) | 2013.10.01 |