2012年5月7日 星期一

[VC(Visual C++) ]- 70_偵測CPU和記憶體使用率_並分別記錄到檔案中

[VC(Visual C++) ]- 70_偵測CPU和記憶體使用率_並分別記錄到檔案中


本篇分享70_偵測CPU和記憶體使用率_並分別記錄到檔案中範例,有興趣的(C/P)同好,歡迎來http://yfdisk.com/file/jashliao/75532da8/索取,因為我不會上傳檔案分享哈哈 ^ ^












主要程式碼



001    // CNetControlDlg.cpp : implementation file                

002    //                

003                    

004    #include "stdafx.h"                

005    #include "CNetControl.h"                

006    #include "CNetControlDlg.h"                

007                    

008    #ifdef _DEBUG                

009    #definenew DEBUG_NEW                

010    #undef THIS_FILE                

011    staticchar THIS_FILE[] = __FILE__;                

012    #endif                

013                    

014    /////////////////////////////////////////////////////////////////////////////                

015    // CAboutDlg dialog used for App About                

016                    

017    class CAboutDlg : public CDialog                

018    {                

019    public:                

020        CAboutDlg();            

021                    

022    // Dialog Data                

023        //{{AFX_DATA(CAboutDlg)            

024        enum { IDD = IDD_ABOUTBOX };            

025        //}}AFX_DATA            

026                    

027        // ClassWizard generated virtual function overrides            

028        //{{AFX_VIRTUAL(CAboutDlg)            

029        protected:            

030        virtualvoid DoDataExchange(CDataExchange* pDX);    // DDX/DDV support            

031        //}}AFX_VIRTUAL            

032                    

033    // Implementation                

034    protected:                

035        //{{AFX_MSG(CAboutDlg)            

036        //}}AFX_MSG            

037        DECLARE_MESSAGE_MAP()            

038    };                

039                    

040    CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)                

041    {                

042        //{{AFX_DATA_INIT(CAboutDlg)            

043        //}}AFX_DATA_INIT            

044    }                

045                    

046    void CAboutDlg::DoDataExchange(CDataExchange* pDX)                

047    {                

048        CDialog::DoDataExchange(pDX);            

049        //{{AFX_DATA_MAP(CAboutDlg)            

050        //}}AFX_DATA_MAP            

051    }                

052                    

053    BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)                

054        //{{AFX_MSG_MAP(CAboutDlg)            

055            // No message handlers        

056        //}}AFX_MSG_MAP            

057    END_MESSAGE_MAP()                

058                    

059    /////////////////////////////////////////////////////////////////////////////                

060    // CCNetControlDlg dialog                

061                    

062    CCNetControlDlg::CCNetControlDlg(CWnd* pParent /*=NULL*/)                

063        : CDialog(CCNetControlDlg::IDD, pParent)            

064    {                

065        //{{AFX_DATA_INIT(CCNetControlDlg)            

066        //}}AFX_DATA_INIT            

067        // Note that LoadIcon does not require a subsequent DestroyIcon in Win32            

068        m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);            

069    }                

070                    

071    void CCNetControlDlg::DoDataExchange(CDataExchange* pDX)                

072    {                

073        CDialog::DoDataExchange(pDX);            

074        //{{AFX_DATA_MAP(CCNetControlDlg)            

075        //}}AFX_DATA_MAP            

076    }                

077                    

078    BEGIN_MESSAGE_MAP(CCNetControlDlg, CDialog)                

079        //{{AFX_MSG_MAP(CCNetControlDlg)            

080        ON_WM_SYSCOMMAND()            

081        ON_WM_PAINT()            

082        ON_WM_QUERYDRAGICON()            

083        ON_WM_CREATE()            

084        //}}AFX_MSG_MAP            

085    END_MESSAGE_MAP()                

086                    

087    /////////////////////////////////////////////////////////////////////////////                

088    // CCNetControlDlg message handlers                

089                    

090    BOOL CCNetControlDlg::OnInitDialog()                

091    {                

092        CDialog::OnInitDialog();            

093                    

094        // Add "About..." menu item to system menu.            

095                    

096        // IDM_ABOUTBOX must be in the system command range.            

097        ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);            

098        ASSERT(IDM_ABOUTBOX < 0xF000);            

099                    

100        CMenu* pSysMenu = GetSystemMenu(FALSE);            

101        if (pSysMenu != NULL)            

102        {            

103            CString strAboutMenu;        

104            strAboutMenu.LoadString(IDS_ABOUTBOX);        

105            if (!strAboutMenu.IsEmpty())        

106            {        

107                pSysMenu->AppendMenu(MF_SEPARATOR);    

108                pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);    

109            }        

110        }            

111                    

112        // Set the icon for this dialog.  The framework does this automatically            

113        //  when the application's main window is not a dialog            

114        SetIcon(m_hIcon, TRUE);            // Set big icon

115        SetIcon(m_hIcon, FALSE);        // Set small icon    

116                    

117        m_MyCpuCtrl.SetRefreshInterval(1000);            

118        m_MyMemCtrl.SetRefreshInterval(1000);            

119        return TRUE;  // return TRUE  unless you set the focus to a control            

120    }                

121                    

122    void CCNetControlDlg::OnSysCommand(UINT nID, LPARAM lParam)                

123    {                

124        if ((nID & 0xFFF0) == IDM_ABOUTBOX)            

125        {            

126            CAboutDlg dlgAbout;        

127            dlgAbout.DoModal();        

128        }            

129        else            

130        {            

131            CDialog::OnSysCommand(nID, lParam);        

132        }            

133    }                

134                    

135    // If you add a minimize button to your dialog, you will need the code below                

136    //  to draw the icon.  For MFC applications using the document/view model,                

137    //  this is automatically done for you by the framework.                

138                    

139    void CCNetControlDlg::OnPaint()                 

140    {                

141        if (IsIconic())            

142        {            

143            CPaintDC dc(this); // device context for painting        

144                    

145            SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);        

146                    

147            // Center icon in client rectangle        

148            int cxIcon = GetSystemMetrics(SM_CXICON);        

149            int cyIcon = GetSystemMetrics(SM_CYICON);        

150            CRect rect;        

151            GetClientRect(&rect);        

152            int x = (rect.Width() - cxIcon + 1) / 2;        

153            int y = (rect.Height() - cyIcon + 1) / 2;        

154                    

155            // Draw the icon        

156            dc.DrawIcon(x, y, m_hIcon);        

157        }            

158        else            

159        {            

160            CDialog::OnPaint();        

161        }            

162    }                

163                    

164    // The system calls this to obtain the cursor to display while the user drags                

165    //  the minimized window.                

166    HCURSOR CCNetControlDlg::OnQueryDragIcon()                

167    {                

168        return (HCURSOR) m_hIcon;            

169    }                

170                    

171    int CCNetControlDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)                 

172    {                

173        CRect rect;            

174        if (CDialog::OnCreate(lpCreateStruct) == -1)            

175            return -1;        

176                    

177        rect.left        = lpCreateStruct->x + 20;    

178        rect.top        = lpCreateStruct->y + 25;    

179        rect.bottom        = lpCreateStruct->y + (lpCreateStruct->cy / 52) * 52 - 25;         

180        rect.right        = lpCreateStruct->x + lpCreateStruct->cx / 2 - 25;    

181                    

182                    

183        if(!m_MyCpuCtrl.Create(WS_CHILD | WS_VISIBLE,                

184                    

185                    

186         )            

187        {            

188            TRACE0("Create m_MyCtrl Failed!");        

189            return 0;        

190        }            

191                    

192        rect.left   = rect.right + 20;            

193        rect.right += lpCreateStruct->cx / 2;            

194                    

195        if(!m_MyMemCtrl.Create(WS_CHILD | WS_VISIBLE,            

196                    

197                    

198         )            

199        {            

200            TRACE0("Create m_MyCtrl Failed!");        

201            return 0;        

202        }            

203        return 0;            

204    }                

 



 


沒有留言:

張貼留言