自己制作优化大师(win32 SDK)
?
// 自己動
手寫優化大師.cpp : 定義應用程序的入口點。
//
#include "stdafx.h"
#include "自己動手寫優化大師.h"
#include "resource.h"
#define MAX_LOADSTRING 100
// 全局變量:
HINSTANCE hInst;????????// 當前實例
TCHAR szTitle[MAX_LOADSTRING];?????// 標題欄文本
TCHAR szWindowClass[MAX_LOADSTRING];???// 主窗口類名
// 此代碼模塊中包含的函數的前向聲明:
ATOM????MyRegisterClass(HINSTANCE hInstance);
BOOL????InitInstance(HINSTANCE, int);
LRESULT CALLBACK?WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK?About(HWND, UINT, WPARAM, LPARAM);
int APIENTRY _tWinMain(HINSTANCE hInstance,
???????????????????? HINSTANCE hPrevInstance,
???????????????????? LPTSTR??? lpCmdLine,
???????????????????? int?????? nCmdShow)
{
?UNREFERENCED_PARAMETER(hPrevInstance);
?UNREFERENCED_PARAMETER(lpCmdLine);
??// TODO: 在此放置代碼。
?MSG msg;
?HACCEL hAccelTable;
?// 初始化全局字符串
?LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
?LoadString(hInstance, IDC_MY, szWindowClass, MAX_LOADSTRING);
?MyRegisterClass(hInstance);
? 執行應用程序初始化:
?//if (!InitInstance (hInstance, nCmdShow))
?//{
?//?return FALSE;
?//}
?//hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY));
? 主消息循環:
?//while (GetMessage(&msg, NULL, 0, 0))
?//{
?//?if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
?//?{
?//??TranslateMessage(&msg);
?//??DispatchMessage(&msg);
?//?}
?//}
?//return (int) msg.wParam;
?DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), NULL, About);
?return 0;
}
?
//
//? 函數: MyRegisterClass()
//
//? 目的: 注冊窗口類。
//
//? 注釋:
//
//??? 僅當希望
//??? 此代碼與添加到 Windows 95 中的“RegisterClassEx”
//??? 函數之前的 Win32 系統兼容時,才需要此函數及其用法。調用此函數十分重要,
//??? 這樣應用程序就可以獲得關聯的
//??? “格式正確的”小圖標。
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
?WNDCLASSEX wcex;
?wcex.cbSize = sizeof(WNDCLASSEX);
?wcex.style???= CS_HREDRAW | CS_VREDRAW;
?wcex.lpfnWndProc?= WndProc;
?wcex.cbClsExtra??= 0;
?wcex.cbWndExtra??= 0;
?wcex.hInstance??= hInstance;
?wcex.hIcon???= LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MY));
?wcex.hCursor??= LoadCursor(NULL, IDC_ARROW);
?wcex.hbrBackground?= (HBRUSH)(COLOR_WINDOW+1);
?wcex.lpszMenuName?= MAKEINTRESOURCE(IDC_MY);
?wcex.lpszClassName?= szWindowClass;
?wcex.hIconSm??= LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
?return RegisterClassEx(&wcex);
}
//
//?? 函數: InitInstance(HINSTANCE, int)
//
//?? 目的: 保存實例句柄并創建主窗口
//
//?? 注釋:
//
//??????? 在此函數中,我們在全局變量中保存實例句柄并
//??????? 創建和顯示主程序窗口。
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
?? HWND hWnd;
?? hInst = hInstance; // 將實例句柄存儲在全局變量中
?? hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
????? CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
?? if (!hWnd)
?? {
????? return FALSE;
?? }
?? ShowWindow(hWnd, nCmdShow);
?? UpdateWindow(hWnd);
?? return TRUE;
}
//
//? 函數: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//? 目的: 處理主窗口的消息。
//
//? WM_COMMAND?- 處理應用程序菜單
//? WM_PAINT?- 繪制主窗口
//? WM_DESTROY?- 發送退出消息并返回
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
?int wmId, wmEvent;
?PAINTSTRUCT ps;
?HDC hdc;
?switch (message)
?{
?case WM_COMMAND:
??wmId??? = LOWORD(wParam);
??wmEvent = HIWORD(wParam);
??// 分析菜單選擇:
??switch (wmId)
??{
??case IDM_ABOUT:
???DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
???break;
??case IDM_EXIT:
???DestroyWindow(hWnd);
???break;
??default:
???return DefWindowProc(hWnd, message, wParam, lParam);
??}
??break;
?case WM_PAINT:
??hdc = BeginPaint(hWnd, &ps);
??// TODO: 在此添加任意繪圖代碼...
??EndPaint(hWnd, &ps);
??break;
?case WM_DESTROY:
??PostQuitMessage(0);
??break;
?default:
??return DefWindowProc(hWnd, message, wParam, lParam);
?}
?return 0;
}
// “關于”框的消息處理程序。
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
?UNREFERENCED_PARAMETER(lParam);
?switch (message)
?{
?case WM_INITDIALOG:
??{
???SetTimer(hDlg,1,1000,NULL);
???/*MEMORYSTATUS memoryStatus;
???const int nBuffersiz=512;
???TCHAR chBuffer[nBuffersiz];
???GlobalMemoryStatus(&memoryStatus);
???ZeroMemory(chBuffer,nBuffersiz);
???wsprintf(chBuffer,TEXT("內存使用率:%u%%兆\n"),memoryStatus.dwMemoryLoad);
???SetDlgItemText(hDlg,IDC_EDIT1,chBuffer);
???wsprintf(chBuffer,TEXT("總共物理內存:%u兆\n"),memoryStatus.dwTotalPhys/(1024*1024));
???SetDlgItemText(hDlg,IDC_EDIT2,chBuffer);
???wsprintf(chBuffer,TEXT("總共物理內存:%u兆\n"),memoryStatus.dwTotalVirtual/(1024*1024));
???SetDlgItemText(hDlg,IDC_EDIT3,chBuffer);*/
???return (INT_PTR)TRUE;
??}
?case WM_TIMER:
??{
???MEMORYSTATUS memoryStatus;
???const int nBuffersiz=512;
???static TCHAR chBuffer[nBuffersiz];
???GlobalMemoryStatus(&memoryStatus);
???ZeroMemory(chBuffer,nBuffersiz);
???wsprintf(chBuffer,TEXT("內存使用率:%u%%兆\n"),memoryStatus.dwMemoryLoad);
???SetDlgItemText(hDlg,IDC_EDIT1,chBuffer);
???wsprintf(chBuffer,TEXT("總共物理內存:%u兆\n"),memoryStatus.dwTotalPhys/(1024*1024));
???SetDlgItemText(hDlg,IDC_EDIT2,chBuffer);
???wsprintf(chBuffer,TEXT("全部的內存:%u兆\n"),memoryStatus.dwTotalVirtual/(1024*1024));
???SetDlgItemText(hDlg,IDC_EDIT3,chBuffer);
???OSVERSIONINFO osInfo;
???TCHAR *strOSVersion=NULL;
???ZeroMemory(&osInfo,sizeof(strOSVersion));
???osInfo.dwOSVersionInfoSize=sizeof(osInfo);
???GetVersionEx(&osInfo);
???
???switch(osInfo.dwPlatformId)
???{
???case VER_PLATFORM_WIN32_NT:
????{
?????if (osInfo.dwMajorVersion==5 && osInfo.dwMinorVersion==0)
?????{
??????strOSVersion=TEXT("windows 2000");
?????}
?????else if (osInfo.dwMajorVersion==5 && osInfo.dwMinorVersion==1)
?????{
??????strOSVersion=TEXT("windows xp");
?????}
?????else if (osInfo.dwMajorVersion==6 && osInfo.dwMinorVersion==0)
?????{
??????strOSVersion=TEXT("windows vista");
?????}
?????else if (osInfo.dwMajorVersion==4 && osInfo.dwMinorVersion==0)
?????{
??????strOSVersion=TEXT("windows NT");
?????}
?????else if (osInfo.dwMajorVersion==6 && osInfo.dwMinorVersion==1)
?????{
??????strOSVersion=TEXT("windows 7");
?????}
?????else if (osInfo.dwMajorVersion==6 && osInfo.dwMinorVersion==2)
?????{
??????strOSVersion=TEXT("windows 8");
?????}
?????break;
????}
???case VER_PLATFORM_WIN32_WINDOWS:
????{
?????if (osInfo.dwMajorVersion==4 && osInfo.dwMinorVersion==10)
?????{
??????strOSVersion=TEXT("windows 98");
?????}
?????else if (osInfo.dwMajorVersion==4 && osInfo.dwMinorVersion==90)
?????{
??????strOSVersion=TEXT("windows ME");
?????}
?????
?????else?
?????{
??????strOSVersion=TEXT("windows 95");
?????}
?????break;
????}
???default:break;
???}
???TCHAR szBufferversion[256];
??? wsprintf(szBufferversion,TEXT("系統版本:%s\n"),strOSVersion);
???SetDlgItemText(hDlg,IDC_EDIT4,szBufferversion);
???DWORD dwStart=GetTickCount();
???TCHAR szBuffer[256];
???wsprintf(szBuffer,TEXT("自啟動以來%d\n秒"),dwStart/1000);
???SetDlgItemText(hDlg,IDC_EDIT5,szBuffer);
???TCHAR chUser[256];
???DWORD dwsize=256;
???ZeroMemory(chUser,256);
???GetUserName(chUser,&dwsize);
???TCHAR Buff[256];
???wsprintf(Buff,TEXT("當前登錄用戶:%s\n"),chUser);
???SetDlgItemText(hDlg,IDC_EDIT6,Buff);
???
???TCHAR chWriter[256]=TEXT("制作人:鄭金瑋");
???
???SetDlgItemText(hDlg,IDC_EDIT7,chWriter);
???HWND hctrl=GetDlgItem(hDlg,IDC_EDIT6);
???EnableWindow(hctrl,FALSE);
???break;
??}
?case WM_COMMAND:
??{
???if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
???{
????EndDialog(hDlg, LOWORD(wParam));
????return (INT_PTR)TRUE;
???}
???switch(LOWORD(wParam))
???{
???case IDC_BUTTON1:
????{
?????ShellExecute(NULL,L"open",L"taskmgr.exe",NULL,NULL,SW_NORMAL);
?????break;
????}
???}
???break;
??}
??
?}
?return (INT_PTR)FALSE;
}
總結
以上是生活随笔為你收集整理的自己制作优化大师(win32 SDK)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人工智能学习(十):什么是贝叶斯网络——
- 下一篇: 阅读《Android 从入门到精通》(1