教作业了! 虽然有点晚 。。看了wanghepeng10的多学了2个函数 呵呵~ 得到win目录和得到计算机名字 不能上传图片了。。#include
#include
#include "main.h"
#include "dialogs.h"
#include "resource.h"
#include "rsrc.inc"
BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
//BEGIN MESSAGE CRACK
HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
//END MESSAGE CRACK
}
return FALSE;
}
////////////////////////////////////////////////////////////////////////////////
// Main_OnInitDialog
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
// Set app icons
HICON hIcon = LoadIcon((HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE) ,MAKEINTRESOURCE(IDI_ICONAPP));
SendMessage(hwnd, WM_SETICON, TRUE, (LPARAM)hIcon);
SendMessage(hwnd, WM_SETICON, FALSE, (LPARAM)hIcon);
SetTimer(hwnd,0,1000,ti);//系统时间
SetTimer(hwnd,1,1000,ti1);//系统启动时间
yonghuming(hwnd);//用户名
SetTimer(hwnd,2,1000,ti2);//内存信息
banben(hwnd); //得到系统版本
name(hwnd); //得到计算机名字
mulu(hwnd); //得到win目录
cipan(hwnd); //得到磁盘信息
return TRUE;
}
////////////////////////////////////////////////////////////////////////////////
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch(id)
{
case IDC_BTN1:
EndDialog(hwnd, 0);
break;
default:break;
}
}
////////////////////////////////////////////////////////////////////////////////
// Main_OnClose
void Main_OnClose(HWND hwnd)
{
EndDialog(hwnd, 0);
}
/////////////////////////自己定义的函数////////////////////////////////////////////
VOID CALLBACK ti (
HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime) //系统时间
{
SYSTEMTIME time;
TCHAR tim[256];
GetLocalTime(&time);
wsprintf(tim,TEXT("%04d年%02d月%02d日%02d时%02d分%02d秒"),time.wYear,time.wMonth,time.wDay,time.wHour,time.wMinute,time.wSecond);
SetDlgItemText(hwnd,IDC_EDT5,tim);
}
VOID CALLBACK ti1(HWND hwnd,UINT message,UINT iTimerID,DWORD dwTime) //系统启动时间
{
DWORD l1=GetTickCount();
TCHAR s1[256];
DWORD l2,l4,l3;
l2=l1/3600000;
l3=(l1-l2*3600000)/60000;
l4=(l1-l2*3600000-l3*60000)/1000;
wsprintf(s1,TEXT("%d小时%d分%d秒"),l2,l3,l4);
SetDlgItemText(hwnd,IDC_EDT6,s1);
}
VOID yonghuming(HWND hwnd) //用户名
{
TCHAR s2[256];
DWORD l5=sizeof(s2)/sizeof(TCHAR);
ZeroMemory(s2,256);
GetUserName(s2,&l5);
SetDlgItemText(hwnd,IDC_EDT1,s2);
}
VOID CALLBACK ti2 (HWND hwnd,UINT message,UINT iTimeID,DWORD cwTime) //内存信息
{
MEMORYSTATUS s3;
TCHAR s4[512];
ZeroMemory(s4,512);
GlobalMemoryStatus(&s3);
wsprintf(s4,TEXT("%uMB"),s3.dwTotalPhys/1048576);//总物理内存
SetDlgItemText(hwnd,IDC_EDT7,s4);
wsprintf(s4,TEXT("%uMB"),s3.dwAvailPhys/1048576);//可用物理内存
SetDlgItemText(hwnd,IDC_EDT8,s4);
wsprintf(s4,TEXT("%u%%"),s3.dwMemoryLoad); //内存使用率
SetDlgItemText(hwnd,IDC_EDT9,s4);
wsprintf(s4,TEXT("%uMB"),s3.dwTotalVirtual/1048576);//虚拟内存大小
SetDlgItemText(hwnd,IDC_EDT10,s4) ;
wsprintf(s4,TEXT("%uMB"),s3.dwTotalPageFile/1048576);//总页面文件
SetDlgItemText(hwnd,IDC_EDT12,s4);
wsprintf(s4,TEXT("%uMB"),s3.dwAvailVirtual/1048576);//可用虚拟内存
SetDlgItemText(hwnd,IDC_EDT11,s4);
wsprintf(s4,TEXT("%uMB"),s3.dwAvailPageFile/1048576); //可用页面
SetDlgItemText(hwnd,IDC_EDT13,s4);
}
VOID banben(HWND hwnd) //得到系统版本
{
OSVERSIONINFO osvi;
TCHAR * strOSVersion;
ZeroMemory( &osvi, sizeof( osvi ) );
osvi.dwOSVersionInfoSize = sizeof( osvi );
GetVersionEx(&osvi);
//首先判断是NT架构的还是旧架构的
switch (osvi.dwPlatformId)
{
case VER_PLATFORM_WIN32_NT:
if (osvi.dwMajorVersion == 5&&osvi.dwMinorVersion == 0)
{
strOSVersion = TEXT("Windows 2000");
}
else if (osvi.dwMajorVersion == 5&&osvi.dwMinorVersion == 1)
{
strOSVersion = TEXT("Windows XP");
}
else if(osvi.dwMajorVersion == 6&&osvi.dwMinorVersion == 0)
{
strOSVersion = TEXT("Windows Vista");
}
else if (osvi.dwMajorVersion == 4&&osvi.dwMinorVersion == 0)
{
strOSVersion = TEXT("Windows NT");
}
break;
case VER_PLATFORM_WIN32_WINDOWS:
if (osvi.dwMajorVersion == 4&&osvi.dwMinorVersion == 10)
{
strOSVersion = TEXT("Windows 98");
}
else if (osvi.dwMajorVersion == 4&&osvi.dwMinorVersion == 90)
{
strOSVersion = TEXT("Windows ME");
}
else
{
strOSVersion = TEXT("Windows 95");
}
break;
default:
break;
}
SetDlgItemText(hwnd,IDC_EDT3,strOSVersion);
}
VOID name(HWND hwnd) //计算机名字
{
TCHAR s6[256];
DWORD l8=256;
ZeroMemory(s6,256);
GetComputerName(s6,&l8);
SetDlgItemText(hwnd,IDC_EDT2,s6);
}
VOID mulu(HWND hwnd) //win目录
{
TCHAR s7[256];
GetWindowsDirectory(s7,sizeof(s7));
SetDlgItemText(hwnd,IDC_EDT4,s7);
}
VOID cipan(HWND hwnd) //磁盘信息
{
DWORD i=GetLogicalDrives();
int j=0;
while(i!=0)
{
if((i&1)==1)
{
TCHAR s_1[256];
TCHAR s_2[256];
ZeroMemory(s_1,256);
s_1[0]=65+j;
s_1[1]=58;
s_1[2]='\0';
UINT t=GetDriveType(s_1);
switch(t)
{
case DRIVE_UNKNOWN:
wsprintf(s_2,TEXT("%s未知磁盘类型"),s_1);
break;
case DRIVE_NO_ROOT_DIR:
wsprintf(s_2,TEXT("%s磁盘名无效"),s_1);
break;
case DRIVE_REMOVABLE:
wsprintf(s_2,TEXT("%s可移动磁盘"),s_1);
break;
case DRIVE_FIXED:
wsprintf(s_2,TEXT("%s固定磁盘"),s_1);
break;
case DRIVE_REMOTE:
wsprintf(s_2,TEXT("%s网络磁盘"),s_1);
break;
case DRIVE_CDROM:
wsprintf(s_2,TEXT("%s光驱动器"),s_1);
break;
case DRIVE_RAMDISK:
wsprintf(s_2,TEXT("%sRAM"),s_1);
break;
default:
wsprintf(s_2,TEXT("%s :"),s_1);
break;
}
ULARGE_INTEGER a1;
ULARGE_INTEGER a2;
ULARGE_INTEGER a3;
TCHAR s_3[256];
if(GetDiskFreeSpaceEx(s_1,&a1,&a2,&a3))
{
wsprintf(s_3,TEXT("%s:%I64dMB:%I64dMB"),s_2,a2.QuadPart/1048576,a3.QuadPart/1048576);
}
else
{
wsprintf(s_3,TEXT("%s:"),s_2);
}
HWND hwnd1 = GetDlgItem(hwnd,IDC_LST1);
SendMessage(hwnd1,LB_ADDSTRING,0,(LPARAM)s_3);
}
j++;
i=i>>1;
}
} |