⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 用vc++编程控制计算机和光驱.txt

📁 vc编程常见的小技巧
💻 TXT
字号:
 用VC++编程控制计算机和光驱  
 
资源浏览  

对话框的外观如图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下通过。 

 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -