Счетчик памяти процесса — это определенная структура, доступная в psapi (API статуса процесса). Его структура определяется как,
typedef struct _PROCESS_MEMORY_COUNTERS {
DWORD cb;
DWORD PageFaultCount;
SIZE_T PeakWorkingSetSize;
SIZE_T WorkingSetSize;
SIZE_T QuotaPeakPagedPoolUsage;
SIZE_T QuotaPagedPoolUsage;
SIZE_T QuotaPeakNonPagedPoolUsage;
SIZE_T QuotaNonPagedPoolUsage;
SIZE_T PagefileUsage;
SIZE_T PeakPagefileUsage;
} PROCESS_MEMORY_COUNTERS;
Я использую метод GetProcessMemoryInfo, который имеет синтаксис,
BOOL GetProcessMemoryInfo(HANDLE Process, PROCESS_MEMORY_COUNTERS* pmc,DWORD size_pmc);
Из указателя переменной структуры pmc я могу получить доступ к WorkingSetSize процесса (скажем, mspaint.exe) как pmc.WorkingSetSize.
Но значение памяти, отображаемое в диспетчере задач, не совпадает ни с одним из значений в структуре. Мои вопросы
PS: предпочтительным языком является C ++, и я хочу сделать это без запуска каких-либо команд в командной строке.
Задача ещё не решена.
Других решений пока нет …