用VC 编程控制计算机和光驱
2008-04-09 04:00:26来源:互联网 阅读 ()
--------------------------------------------------------------------------------
通常有些程序在初次使用使用时,要进行一些象安装特定字体的设置,之后需要重新启动计算机使之生效;而在一些多媒体软件编程中会用到用程序操纵CD_ROM的开与关的情况。为了说明在VC中实现这两项功能的方法,我们创建一个基于对话框、名为Control的工程。对话框的外观如图1所示,其中四个按钮(Button)属性设置见下表,
ID Caption
IDC_SHUTDOWNCOMPUTER 关闭计算机...
IDC_RESTARTCOMPUTER 重新启动计算机
IDC_OPENCDROM 打开CD-ROM
IDC_CLOSECDROM 关闭CD-ROM
图1 IDD_CONTROL_DIALOG对话框
(1) 重新启动计算机
先获取操作系统版本,然后调用ExitWindowsEx函数重新启动计算机。为IDC_RESTARTCOMPUTER按钮添加BN_CLICKED消息处理函数如下:
void CControlDlg::OnRestartcomputer()
{
OSVERSIONINFO OsVersionInfo;//包含操作系统版本信息的数据结构
OsVersionInfo.dwOSVersionInfoSize= sizeof(OSVERSIONINFO);
GetVersionEx(&OsVersionInfo);//获取操作系统版本信息
if( OsVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS )
{//Windows98,调用ExitWindowsEx()函数重新启动计算机
DWORD dwReserved ;
ExitWindowsEx(EWX_LOGOFF,dwReserved);
}
}
实际上,通过改变函数ExitWindowsEx的第一个参数可以实现注销用户、关机、关闭电源等操作。
(2)关闭计算机
此功能是通过shell32.dll中一个索引号为60的API函数调用,显示"关闭Windows"对话窗口实现的。
具体方法为IDC_SHUTDOWNCOMPUTER按钮添加BN_CLICKED消息处理函数:
void CControlDlg::OnShutdowncomputer()
{
HINSTANCE hInst=LoadLibrary("shell32.dll");//装入shell32.dll
SHUTDOWNDLG ShutDownDialog;//指向shell32库中显示关机对话框函数的指针
if(hInst!=NULL)
{
//获得函数的地址并调用之
ShutDownDialog=(SHUTDOWNDLG)GetProcAddress(hInst,(LPSTR)60);//
(*ShutDownDialog)(0);
}
}
函数中的SHUTDOWNDLG定义如下:
typedef int (CALLBACK *SHUTDOWNDLG)(int);//显示关机对话框函数的指针
(3)打开CD_ROM与关闭CD_ROM
方法是先向工程中加入多媒体组件。选择Project|Add to Project|Components and Controls菜单项,在弹出的Components and Controls Gallery对话框中选择Visual C Components文件夹,然后选择Windows Multimedia library项,按Insert按钮。在之后的消息框中按"是"。这样,在工程中加入了了多媒体组件,在stdafx.h文件中加入了两行语句:
#include
// CG: The following line was added by the Windows Multimedia component.
#pragma comment(lib, "winmm.lib")
然后分别为IDC_OPENCDROM和IDC_CLOSECDROM按钮添加BN_CLICKED消息处理函数如下:
void CControlDlg::OnOpencdrom() //打开光驱
{
mciSendString("Set cdAudio door open wait", NULL, 0, NULL);
}
void CControlDlg::OnClosecdrom() //关闭光驱
{
mciSendString("Set cdAudio door closed wait", NULL, 0, NULL);
}
本程序在中文Windows 98、Visual C 6.0下通过。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:C语言中常见错误
下一篇:如何实现歌曲在线点播?
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash