工控编程吧
标题:
218上位机VC MFC系统启动模式及系统鼠标相关信息获取
[打印本页]
作者:
qq263946146
时间:
2016-2-28 12:19
标题:
218上位机VC MFC系统启动模式及系统鼠标相关信息获取
(, 下载次数: 0)
上传
点击文件名下载附件
218上位机VC MFC系统启动模式及系统鼠标相关信息获
功能展示
当我们电脑启动时,按F8等快捷键会看到各种启动电脑的选项如正常启动,安全模式等等,我们当前例程通过自己编写代码实现当前系统启动方式的获取,额外通过相同的方法,还可获取鼠标相关的信息,效果如图,点击获得系统启动模式,会从组合框的启动模式中选择出当前系统的启动模式;
要点提示
系统启动模式的获取是通过GetSystemMetrics()函数来获得的; GetSystemMetrics ()用于得到被定义的系统数据或者系统配置信息; 函数原型:intWINAPI GetSystemMetrics( __in intnIndex);函数仅跟一个参数,参数的取值众多,可以查阅MSDN手册;系统启动模式的获取可以用int nIndex=::GetSystemMetrics(SM_CLEANBOOT);来取得 返回的值就是对应系统的启动模式;
实现功能
1.新建基于对话框的应用程序
2.拖拽 按钮<获得系统启动模式><鼠标上按键数><是否有鼠标安装><鼠标左右键对调了><系统处理器水平>关联函数;拖拽编辑框IDC_EDIT1, IDC_EDIT2,组合框ID为IDC_COMBO1用于罗列出系统的全部启动模式
3.在对话框OnInitDialog()函数中初始化 CComboBox* pCombo= (CComboBox*)GetDlgItem(IDC_COMBO1);
pCombo->InsertString(0,"Normalboot");//插入文本
pCombo->InsertString(0,"Fail-safeboot");
pCombo->InsertString(0,"Fail-safewith network boot");
pCombo->SetCurSel(0);//选择当前显示文本
4.实现各个按钮的关联函数
void CGkbc8Dlg::OnProcessor()
{
BOOL bMouseSwap = GetSystemMetrics(SM_SLOWMACHINE);
if(bMouseSwap)
MessageBox("系统拥有低处理器");
else
MessageBox("系统拥有高处理器");
}
复制代码
void CGkbc8Dlg::OnMouseswap()
{
BOOL bMouseSwap = GetSystemMetrics(SM_SLOWMACHINE);
if(bMouseSwap)
MessageBox("鼠标左右键已对调");
else
MessageBox("鼠标左右键未对调");
}
#define SM_MOUSEWHEELPRESENT 75
void CGkbc8Dlg::OnMousenums()
{
BOOL bMouse = GetSystemMetrics(SM_MOUSEPRESENT);//是否有鼠标安装
BOOL bMouseWhile = GetSystemMetrics(SM_MOUSEWHEELPRESENT);//安装的鼠标是否有中键
CString sText;
if(bMouse)
sText.Format("有鼠标安装,鼠标有%d个中键",bMouseWhile);
else
sText="系统未安装鼠标";
SetDlgItemText(IDC_EDIT2,sText);
}
void CGkbc8Dlg::OnMousenum()
{
int nNum = GetSystemMetrics(SM_CMOUSEBUTTONS);
CString sText;
sText.Format("共%d个鼠标按键数",nNum);
SetDlgItemText(IDC_EDIT1,sText);
}
void CGkbc8Dlg::OnSysmode()
{
CComboBox* pCombo = (CComboBox*)GetDlgItem(IDC_COMBO1);//获得组合框指针
int nCount = pCombo->GetCount();
CString sComText; int i;
int nIndex=::GetSystemMetrics(SM_CLEANBOOT);//获取系统启动模式
switch(nIndex)
{case 0:
for(i=0;i<nCount;i++)
{
pCombo->GetLBText(i,sComText);
if(sComText=="Normal boot")
pCombo->SetCurSel(i);
}
break;
复制代码
case 1:
for(i=0;i<nCount;i++)
{
pCombo->GetLBText(i,sComText);
if(sComText=="Fail-safe boot")
pCombo->SetCurSel(i);
}
break;
case 2:
for(i=0;i<nCount;i++)
{
pCombo->GetLBText(i,sComText);
if(sComText=="Fail-safe with network boot")
pCombo->SetCurSel(i);
}
break;
default:
break;
}
}
复制代码
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/b9e75e4435a04307290984d16c698a91/0/0/w_19rszr7ax5.swf-albumId=5382372709-tvId=5382372709-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4