【转载加修改】VC6 MFC怎么检测当前操作系统?

原文地址:http://blog.csdn.net/lovton/article/details/6528246

 

1、首先,新建MFC对话框,命名为GetSys。向对话框拖入一个按钮,两个静态文本并设置标题。

 

2、修改ID:按钮:IDC_GET_SYSTEM;标题为“尚未检测”的静态文本:IDC_SYSTEM。

3、右键点击按钮,选择【建立类向导】(我没法给右键菜单截图,自己选择就好了)。

4、选择【Member Variables】,选择【IDC_GET_SYSTEM】,点击【Add Variable】。

 

5、Category选择【Control】,Variable type选择【CButton】,Variable name输入m_getsys,点【OK】。

 

6、选择【IDC_SYSTEM】,点【Add Variable】。

 

7、Category选择【Control】,Variable type选择【CStatic】,Variable name输入m_system,点【OK】。

 

8、点击【确定】。

 

9、双击窗体中的按钮,点【OK】。

 

10、在处理程序中添加代码:

	int a = 0, b = 0, i = 0, j = 0;
	_asm
	{
		pushad
			mov ebx, fs:[0x18]; get self pointer from TEB
			mov eax, fs:[0x30]; get pointer to PEB / database
			mov ebx, [eax + 0A8h]; get OSMinorVersion
			mov eax, [eax + 0A4h]; get OSMajorVersion
			mov j, ebx
			mov i, eax
			popad
	}

	if ((i == 5) && (j == 0))
	{
		m_getsys.SetWindowText(_T("重新检测系统"));
		m_system.SetWindowText(_T("Windows 2000"));
	}
	else if ((i == 5) && (j == 1))
	{
		m_getsys.SetWindowText(_T("重新检测系统"));
		m_system.SetWindowText(_T("Windows XP"));
	}
	else if ((i == 5) && (j == 2))
	{
		m_getsys.SetWindowText(_T("重新检测系统"));
		m_system.SetWindowText(_T("Windows Server 2003"));
	}
	else if ((i == 6) && (j == 0))
	{
		m_getsys.SetWindowText(_T("重新检测系统"));
		m_system.SetWindowText(_T("Windows Vista"));
	}
	else if ((i == 6) && (j == 1))
	{
		m_getsys.SetWindowText(_T("重新检测系统"));
		m_system.SetWindowText(_T("Windows 7"));
	}
	else
	{
		MessageBox(_T("抱歉,本工具目前只支持Win2000/XP/2003/Vista/7系统,无法识别您的系统!"), _T("错误"), MB_ICONERROR);
		m_system.SetWindowText(_T("无法识别您的系统"));
		m_getsys.SetWindowText(_T("重新检测系统"));
	}


11、编译并运行程序,点击检测系统按钮即可看到当前系统。

 

再次声明:本文章部分核心源代码为转载,请尊重原创,点此查看原文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值