dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | flex | CRM | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>C/C++>C/C++技术资料>文章内容
获取有关显示器、鼠标及系统的配置信息
来源:编程爱好者     作者:    
问题
  有时,程序员希望能够确定用户目前正在使用的是什么配置,此信息应该包括驱动器的数目和类型,以及 用户是否使用鼠标。当然,最好能够确定用户使用的显示器的类型以及显示器的分辨率。

方法
  确定所有的信息需要好几步。首先可以利用 Windows API GetDriveType 来确定机器安装了哪些 驱动器以及它们是什么类型(硬盘,CD-ROM,软盘,或网络驱动器)。
  使用 Windows API 函数 GetSystemMetrics 可以获取信息的第二部分(是否有鼠标及显示器的大小)。 此会返回给程序员大量的信息,在本节中我们只使用其中的一部分。

步骤
  按照下列步骤实现一个例子程序。运行此例子程序,从菜单 SysInfo 中选择菜单项 Drivers,将弹出一 个对话框。对话框包含所有可能的驱动器盘符(A-Z)以及对应的驱动器类型。类型是下列中的一个:

不确定的:此驱动器可能在系统中不存在。
可移动驱动器:通常为软盘驱动器。
固定驱动器:通常为硬盘。
网络驱动器:通常为网络驱动器,但某些类型的 CD-ROM 驱动器也归为此类。
CD-ROM:通常为 CD-ROM 驱动器。
虚拟驱动器:通常指用内存虚拟的驱动器。
  1.在 Visual 中,利用 AppWizard 创建新的项目文件,并命名此项目文件为 LD12.MAK.利用 AppStudio,在菜单 IDR_WAINFRAME 中添加新的菜单 SysInfo.在 SysInfo 中添加新的菜单项 &Drivers,其 ID 为 ID_DRIVER_INFO.
  2.在 AppStudio 中,创建新的对话框 IDD_DIALOG1.添加 26 个静态文本域,标题为驱动器盘符(A:, B:,C:等等).与其对齐,添加另外 26 个静态文本域。与驱动器盘符同顺序,ID 分别赋为 1001,1002 等 等。
  3.在 AppStudio 中,选择 ClassWizard,然后选择 New Class 来创建新的对话框类。新类命名为 CDriveDlg,并接受其他所有缺省值。为消息 WM_INITDIALOG 添加一个(命名为 OnInitDialog)。
  4.在 OnInitDialog 中,添加下列代码:


BOOL CDriveDlg::OnInitDialog()
{
CDialog::OnInitDialog();
char buf[10];

for(int i=0;i<26;i++)
{
sprintf(buf,"%c:\\",'A'+i);
WORD type=GetDriveType(buf);
switch(type)
{
case DRIVE_UNKNOWN:
GetDlgItem(1001+i)->SetWindowText("不能识别的驱动器");
break;
case DRIVE_NO_ROOT_DIR:
GetDlgItem(1001+i)->SetWindowText("不确定的驱动器");
break;
case DRIVE_REMOVABLE:
GetDlgItem(1001+i)->SetWindowText("可移动的驱动器");
break;
case DRIVE_FIXED:
GetDlgItem(1001+i)->SetWindowText("固定的驱动器");
break;
case DRIVE_REMOTE:
GetDlgItem(1001+i)->SetWindowText("网络驱动器");
break;
case DRIVE_CDROM:
GetDlgItem(1001+i)->SetWindowText("CD-ROM驱动器");
break;
case DRIVE_RAMDISK:
GetDlgItem(1001+i)->SetWindowText("虚拟驱动器");
break;
default:
GetDlgItem(1001+i)->SetWindowText("");
break;
}
}

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

  5.启动 ClassWizard.从下拉列表中选择对象 CMainFrame,从对象列表中选择 ID_DRIVE_INFO,选择 消息 COMMAND.点击按钮 Add Function,新函数命名为 OnDriveInfo,在 CMainFrame 的 OnDriveInfo 中添加下列代码:

void CMainFrame::OnDriveInfo()
{
CDriveDlg dlg;

dlg.DoModal();
}

  6.在文件 MAINFRAME.CPP 顶部的 include 文件列表中添加下面一行:
#include "DriveDlg.h"
  7.编译并运行此例子程序。


用法
  函数 GetDriveType 通常用来确定安装的驱动器类型。尽管此可能被某些 CD-ROM 驱动器、网 络驱动器以及软件模拟驱动器所“欺骗”,但仍是一个确定当前系统中哪一个驱动器符可用的理想方法。这 些驱动器符接着就可以用在应用程序中。


  函数 GetSystemmetrics 通常用来获取多种有关系统及其性能的信息。在本节中只使用此 API 函 数获取某些有用的信息。程序员可以使用此来将窗口置与于屏幕的中央,同时也可以使对话框和显示 的信息居中。

步骤
  按照下列步骤实现一个例子程序。运行此例子程序,从菜单 SysInfo 中选择菜单项 Screen_Mouse, 将弹出一个对话框,显示用户是否安装了鼠标以及当前屏幕的分辨率。

  1.在 Visual 中,利用AppStudio,在菜单 SysInfo 中添加新的菜单项&Screen_Mouse,其对 话框 ID 为 ID_SCREEN_MOUSE.
  2.在 AppStudio 中,创建新的对话框 IDD_DIALOG2.添加 3 个静态文本域,标题分别为 Mouse Present:、Screen Width 以及 Screen Height.与其对齐,添加另外 3 个静态文本域。与之同顺序, ID 分别赋为 ID_MOUSE,ID_SCREN_WIDTH,ID_SCREEN_HEIGHT。
  3.在 AppStudio 中,选择 ClassWizard,然后选择 New Class 来创建新的对话框类。新类命名为 CScreenMouseDlg,并接受其他所有缺省值。为消息 WM_INITDIALOG 添加一个(命名为 OnInitDialog)。
  4.在 OnInitDialog 中,添加下列代码:


BOOL CScreenMouseDlg::OnInitDialog()
{
CDialog::OnInitDialog();

char buf[10];

if(GetSystemMetrics(SM_MOUSEPRESENT)!=0)
GetDlgItem(ID_MOUSE)->SetWindowText("是");
else
GetDlgItem(ID_MOUSE)->SetWindowText("否");
_ltoa(GetSystemMetrics(SM_CXSCREEN),buf,10);
GetDlgItem(ID_SCREEN_WIDTH)->SetWindowText(buf);
_ltoa(GetSystemMetrics(SM_CYSCREEN),buf,10);
GetDlgItem(ID_SCREEN_HEIGHT)->SetWindowText(buf);

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

  5.启动 ClassWizard.从下拉列表中选择对象 CMainFrame,从对象列表中选择 ID_SCREEN_MOUSE, 选择消息 COMMAND.点击按钮 Add Function,新函数命名为 OnScreenMouse,在 OnScreenMouse 中添加下列代码:

void CMainFrame::OnScreenMouse()
{
CScreenMouseDlg dlg;

dlg.DoModal();
}

  6.在文件 MAINFRAME.CPP 顶部的 include 文件列表中添加下面一行:
#include "ScreenMouseDlg.h"
  7.编译并运行此例子程序。

 

 

上一篇:VC下打印机的使用   下一篇:如何模拟《WORD》的窗口形式
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·C语言数组排序小结
·Python 与 C++ 程序的简单实例对
·c++ 数组与指针
·C++中的内存管理(new、delete、
·如何用C语言开发DSP嵌入式系统
·如何用C语言开发DSP嵌入式系统
·Linux下C语言编程
·学习arm的话先看哪本书?
·C++初学者应该关心的优秀图书一
·利用C语言小程序来解决大问题
·用C语言写PHP扩展的步骤
·用C语言扩展PHP功能
  相关文章
·VC下打印机的使用
·如何模拟《WORD》的窗口形式
·Windows下实时行式打印系统设计
·OICQ登录号码清除器实现原理
·利用WebBrowser控件创建自己的浏
·用VC 6.0实现串行通信的三种方法
·VC编程实现文本语音转换
·FMD开发文集 -- CArchive原理
·用VC存取数据库中的大对象
·用Sockets接收和转换数字和字符
·利用模板技术简化VC中的代码
·如何自动截获输出到打印机的文本
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763