直接附获取关键信息的源代码
总体的思路:
1.在界面初始化时设置定时器,自动更新cpu和内存的使用比例.
2.绑定快捷键更新整体的信息
3.dealwithdata()总体的调用和更新数据,算是程序的开始
// MyTask002Dlg.cpp : 实现文件
//
#include "stdafx.h"
#include "MyTask002.h"
#include "MyTask002Dlg.h"
#include "afxdialogex.h"
#include <tlhelp32.h>
#include <Psapi.h>
#include<windows.h>
#pragma comment (lib,"Psapi.lib")
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
void MyRtlAdjustPrivilege()
{
const int SE_SHUTDOWN_PRIVILEGE = 20;
int nAddress = 0;
typedef int(WINAPI*RtlAdjustPrivilege)(int, bool, bool, int*);
HMODULE module = LoadLibrary(TEXT("ntdll.dll"));
RtlAdjustPrivilege pRt = (RtlAdjustPrivilege)GetProcAddress(module, "RtlAdjustPrivilege");
pRt(SE_SHUTDOWN_PRIVILEGE, TRUE, FALSE, &nAddress);
FreeLibrary(module);
}
// CMyTask002Dlg 对话框
CMyTask002Dlg::CMyTask002Dlg(CWnd* pParent /*=NULL*/)
: CDialogEx(CMyTask002Dlg::IDD, pParent)
, m_CPUState(_T(""))
, m_FreeState(_T(""))
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CMyTask002Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST1, m_list);
DDX_Text(pDX, IDC_CPUSTATE, m_CPUState);
DDX_Text(pDX, IDC_FREESTATE, m_FreeState);
}
BEGIN_MESSAGE_MAP(CMyTask002Dlg, CDialogEx)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_CONTEXTMENU()
ON_COMMAND(ID_32771, &CMyTask002Dlg::MyCloseProcess)
ON_COMMAND(ID_32772, &CMyTask002Dlg::MyOPenProcessLocation)
ON_WM_TIMER()
END_MESSAGE_MAP()
// CMyTask002Dlg 消息处理程序
BOOL CMyTask002Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
LONG styles;
styles= GetWindowLong(m_list.m_hWnd, GWL_STYLE);
SetWindowLong(m_list.m_hWnd, GWL_STYLE, sty