-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMemoryUsage.cpp
85 lines (74 loc) · 2.89 KB
/
MemoryUsage.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/**
* \file MemoryUsage.cpp
* \brief
*/
//-------------------------------------------------------------------------------------------------
#include <windows.h>
#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
//-------------------------------------------------------------------------------------------------
HWND GetConsoleHwnd(void)
{
#define MY_BUFSIZE 1024
HWND hwndFound;
char pszNewWindowTitle[MY_BUFSIZE];
char pszOldWindowTitle[MY_BUFSIZE];
GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);
wsprintf(pszNewWindowTitle,"%d/%d",
GetTickCount(),
GetCurrentProcessId());
SetConsoleTitle(pszNewWindowTitle);
hwndFound=FindWindow(NULL, pszNewWindowTitle);
SetConsoleTitle(pszOldWindowTitle);
return(hwndFound);
}
//-------------------------------------------------------------------------------------------------
int main(int, char **)
{
char src[80];
char dest[80];
int Div=1024;
int old = 0;
HWND Whwnd=GetConsoleHwnd();
MEMORYSTATUS stat;
HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
SetWindowPos(Whwnd ,HWND_TOPMOST,0,0,380,160, SWP_SHOWWINDOW );
strcpy(src,"��������� ������");CharToOem(src,dest);
SetConsoleTitle(dest);
SetConsoleTextAttribute ( hStdout, BACKGROUND_BLUE |7 );
system("cls");
GlobalMemoryStatus (&stat);
strcpy(src,"���������� ������ ��������");CharToOem(src,dest);
printf("%s\t%ld Kb\n",dest, stat.dwTotalPhys/Div);
strcpy(src,"���������� ������ ��������");CharToOem(src,dest);
printf("%s\t%ld Kb\n",dest, stat.dwAvailPhys/Div);
strcpy(src,"���� �������� ��������");CharToOem(src,dest);
printf("%s\t\t%ld Kb\n",dest, stat.dwTotalPageFile/Div);
strcpy(src,"���� �������� ��������");CharToOem(src,dest);
printf("%s\t\t%ld Kb\n",dest, stat.dwAvailPageFile/Div);
strcpy(src,"����������� ������ ��������");CharToOem(src,dest);
printf("%s\t%ld Kb\n",dest, stat.dwTotalVirtual/Div);
strcpy(src,"����������� ������ ��������");CharToOem(src,dest);
printf("%s\t%ld Kb\n\n",dest, stat.dwAvailVirtual/Div);
printf ("%ld%%",stat.dwMemoryLoad);
SetConsoleTextAttribute ( hStdout, BACKGROUND_BLUE |14 );
do
{
::Sleep(40);
::GlobalMemoryStatus (&stat);
strcpy(src,"������ ������������ ");CharToOem(src,dest);
printf ("\r\t %ld%% %s",stat.dwMemoryLoad,dest);
if (stat.dwMemoryLoad == old) {
} else {
strcpy(src,"��������e���");CharToOem(src,dest);
sprintf (src,"%ld%% %s",stat.dwMemoryLoad,dest);
SetConsoleTitle(src);
}
old=stat.dwMemoryLoad;
}
while (true);
return 0;
}
//-------------------------------------------------------------------------------------------------