#include < fstream >
#include "tlhelp32.h"
BOOL CSpedd_testDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: 特別な初期化を行う時はこの場所に追加してください。
m_dwBefore = 0;
SetTimer(1, 1000, NULL);
return TRUE; // TRUE を返すとコントロールに設定したフォーカスは失われません。
}
void CSpedd_testDlg::OnButton2()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
// 空きメモリサイズ
/*
// 構造体
typedef struct _MEMORYSTATUSEX {
DWORD dwLength; // 構造体のサイズ
DWORD dwMemoryLoad; // メモリの使用率(%)
DWORDLONG ullTotalPhys; // 物理メモリの搭載容量
DWORDLONG ullAvailPhys; // 物理メモリの空き容量
DWORDLONG ullTotalPageFile; // ページングの搭載容量
DWORDLONG ullAvailPageFile; // ページングの空き容量
DWORDLONG ullTotalVirtual; // 仮想メモリの搭載容量
DWORDLONG ullAvailVirtual; // 仮想メモリの空き容量
DWORDLONG ullAvailExtendedVirtual; // 仮想メモリの拡張空き容量
} MEMORYSTATUSEX, *LPMEMORYSTATUSEX;
// プロトタイプ宣言
BOOL GlobalMemoryStatusEx(
LPMEMORYSTATUSEX lpBuffer // メモリステータスの構造体
);
*/
// 情報収集
//MEMORYSTATUS msex = { sizeof(MEMORYSTATUS) };
MEMORYSTATUS msex;
GlobalMemoryStatus( &msex );
// 物理メモリの使用容量
DWORD dwUsed = (msex.dwTotalPhys - msex.dwAvailPhys);
// 物理メモリの空き容量
DWORD dwFree = (msex.dwAvailPhys);
// 物理メモリの搭載容量
DWORD dwSize = (msex.dwTotalPhys);
CTime cTime = CTime::GetCurrentTime(); // 現在時刻
CString str = cTime.Format("%Y/%m/%d %H:%M:%S");
CString s;
s.Format("%lu : %lu : %lu\n", dwUsed>>=20, dwFree>>=20, dwSize>>=20);
str += " " + s;
DWORD sa=0;
if(m_dwBefore == 0) m_dwBefore = dwFree;
if(m_dwBefore >= dwFree){
sa=m_dwBefore - dwFree;
}
else{
sa=dwFree - m_dwBefore;
}
if(sa > 0){
TRACE(str);
std::ofstream ofs( "c:\\test\\testlog.txt", std::ios::out | std::ios::app );
ofs << str.GetBuffer(str.GetLength())
//<< std::endl
;
m_dwBefore = dwFree;
}
}
void CSpedd_testDlg::OnTimer(UINT nIDEvent)
{
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
OnButton2();
CDialog::OnTimer(nIDEvent);
}
void CSpedd_testDlg::OnButton3()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
HANDLE hSnapshot = CreateToolhelp32Snapshot (TH32CS_SNAPPROCESS, 0) ;
PROCESSENTRY32 pe32 ;
pe32.dwSize = sizeof pe32 ;
if (Process32First (hSnapshot, &pe32))
{
do {TRACE ("プロセスID=%ld, ファイル名=%s\n", pe32.th32ProcessID, pe32.szExeFile) ;}
while (Process32Next (hSnapshot, &pe32)) ;
}
CloseHandle (hSnapshot) ;
}