#include #include // vars for output TCHAR virtualPages[16], pageFilePages[16], percentage[16]; // memory info struct MEMORYSTATUS memStat; LONG WINAPI WndProc(HWND, UINT, WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { HWND hwnd; MSG msg; WNDCLASS w; memset(&w, 0, sizeof(WNDCLASS)); w.style = WS_TILED | CS_HREDRAW | CS_VREDRAW; w.lpfnWndProc = WndProc; w.hInstance = hInstance; w.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); w.lpszClassName = L"Lab3"; w.hIcon = LoadIcon(NULL, IDI_EXCLAMATION); RegisterClass(&w); hwnd = CreateWindow(L"Lab3", L"Nepryakhin 3121", WS_OVERLAPPEDWINDOW, 400, 400, 240, 100, NULL, NULL, hInstance, NULL); // get memory status ZeroMemory(&memStat, sizeof(MEMORYSTATUS)); GlobalMemoryStatus(&memStat); // format virtual string in mb StringCbPrintf(virtualPages, sizeof(virtualPages), L"%.0f Mb", memStat.dwTotalVirtual/4096.0/1024); // ...pagefile StringCbPrintf(pageFilePages, sizeof(pageFilePages), L"%.0f Mb", memStat.dwTotalPageFile/4096.0/1024); // ...percent StringCbPrintf(percentage, sizeof(percentage), L"%.2f %%", ((memStat.dwTotalVirtual/4096.0) / (memStat.dwTotalPageFile/4096.0))*100); ShowWindow(hwnd,nCmdShow); UpdateWindow(hwnd); while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LONG WINAPI WndProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam) { HDC hdc; PAINTSTRUCT ps; int start = 4; switch (Message){ case WM_DESTROY: PostQuitMessage(0); break; case WM_PAINT: hdc = BeginPaint(hwnd, &ps); TextOut(hdc, 20, start, L"Virtual:", 8); TextOut(hdc, 150, start, virtualPages, wcslen(virtualPages)); TextOut(hdc, 20, start+20, L"PageFile:", 9); TextOut(hdc, 150, start+20, pageFilePages, wcslen(pageFilePages)); TextOut(hdc, 20, start+40, L"Virtual / PageFile =", 20); TextOut(hdc, 150, start+40, percentage, wcslen(percentage)); EndPaint(hwnd, &ps); break; default: return DefWindowProc(hwnd, Message, wparam, lparam); } return 0; }