Visual C++范例开发大全源程序---学习笔记 2

 

1.清除浏览器地址栏历史记录

void CClearLogDlg::OnCleae()
{
 SHDeleteKey(HKEY_CURRENT_USER,
  _T("Software\\Microsoft\\Internet Explorer\\TypedURLs"));
 MessageBox("已成功清除浏览器地址栏历史记录");
}

2.清空回收站

void CClearRecycledDlg::OnButton1()
{
 // TODO: Add your control notification handler code here
 SHQUERYRBINFO sqrb;//定义SHQUERYRBINFO结构变量
 //查询回收站文件数
 SHQueryRecycleBin(NULL,&sqrb);
 //判断回收站文件数
 if(sqrb.i64NumItems!=0)
 {
  //不空时,执行清空
  SHEmptyRecycleBin(NULL, NULL,SHERB_NOCONFIRMATION | SHERB_NOPROGRESSUI | SHERB_NOSOUND);
  MessageBox("已经清空回收站");
 }
 else
  MessageBox("回收站空!");
}

3.缺省浏览器打开网页

void CDefaultBrowserDlg::OnDefaultbrowser()
{
 HKEY hKeyRoot,hKeySub;
 char ValueName[MAX_PATH];
 unsigned char DataValue[MAX_PATH];
 unsigned long cbValueName=MAX_PATH;
 unsigned long cbDataValue=MAX_PATH;
 char IE[MAX_PATH];
 DWORD dwType;
 if(RegOpenKey(HKEY_CLASSES_ROOT,NULL,&hKeyRoot)==ERROR_SUCCESS)
 {
  if(RegOpenKeyEx(hKeyRoot,"htmlfile\\shell\\open\\command",0,
                                 KEY_ALL_ACCESS, &hKeySub)==ERROR_SUCCESS)
  {
   RegEnumValue(hKeySub, 0, ValueName, &cbValueName,
      NULL, &dwType,DataValue, &cbDataValue);
   strcpy(IE,(char *)DataValue);
   strcat(IE,"
www.google.cn");
   WinExec(IE,SW_SHOW);
  }
  else
  {
   MessageBox("浏览器打开错误!");
  }
 }
 else
 {
  MessageBox("浏览器打开错误!");
 }
 RegCloseKey(hKeySub);
 RegCloseKey(hKeyRoot);
}

4.删除桌面快捷方式

void CDelShotCutDlg::OnButton1()
{
 // TODO: Add your control notification handler code here
  //“开始”菜单为CSIDL_STARTMENU
 int nBeginAt=CSIDL_DESKTOPDIRECTORY ;   
 LPITEMIDLIST pidlBeginAt ;
    char StrShortcut[ MAX_PATH]="", StrPathName[ MAX_PATH]="";
    //取得桌面的PIDL
    SHGetSpecialFolderLocation( HWND_DESKTOP, nBeginAt, &pidlBeginAt) ;
    //把PIDL转化为路径名
    SHGetPathFromIDList( pidlBeginAt, StrPathName) ;
 //取得要删除的桌面快捷方式
 OPENFILENAME ofn;

 //定义过滤字符串
    char szFilter[] = "Shortcuts\0*.lnk\0" ;
 //为ofn结构申请内存并好初始化为0
    ZeroMemory(&ofn,sizeof( OPENFILENAME));
 //初始化ofn结构
    ofn.lStructSize = sizeof( OPENFILENAME) ;
    ofn.hwndOwner = HWND_DESKTOP ;//设置桌面
    ofn.lpstrFilter = szFilter ;
    ofn.nFilterIndex = 0 ;
    ofn.nMaxFile = MAX_PATH ;
    ofn.lpstrTitle = "请选择要删除的桌面快捷方式:" ;
    ofn.lpstrFile = StrShortcut;
 ofn.lpstrInitialDir = StrPathName ;
    ofn.Flags=OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_EXPLORER|
        OFN_NODEREFERENCELINKS ;
    if(! GetOpenFileName( &ofn))
        return  ;     
 //删除桌面快捷方式
 SHFILEOPSTRUCT fos ;
 //为fos结构申请内存并好初始化为0
    ZeroMemory( &fos, sizeof(fos)) ;
 //初始化fos结构
    fos.hwnd = HWND_DESKTOP ;
    fos.wFunc = FO_DELETE ;
    fos.pFrom = StrShortcut;
    fos.pTo = NULL ;
    fos.fFlags = FOF_SILENT | FOF_ALLOWUNDO ;
    if( 0 != SHFileOperation( &fos))
        return ;
}

5.获取本机桌面位置

TCHAR   szPath[MAX_PATH];       
 SHGetSpecialFolderPath(NULL,   szPath,   CSIDL_DESKTOP,   FALSE);

 CString str;
 str = CString( szPath );
 GetDlgItem(IDC_STATIC)->SetWindowText( str );

6.获取驱动器类型

void CDirverTypeDlg::OnButton1()
{
 // TODO: Add your control notification handler code here
 char  szDrivers[128];//保存驱动器名称
 char* pDriver;     
 CString StrDisktype,StrDriverName="";
 //取得系统的第一个逻辑驱动器
 if ( !GetLogicalDriveStrings( sizeof(szDrivers), szDrivers ) )
 {
  MessageBox("不能取得系统的逻辑驱动器");
  return ;
 }
 //指向第一个逻辑驱动器
 pDriver = szDrivers;        
 //搜索系统所有的逻辑驱动器
 while( *pDriver )        
 {
  switch( ::GetDriveType(pDriver) )
  {
   case DRIVE_REMOVABLE:
    StrDisktype="可移动设备\r\n";
    break;
   case DRIVE_FIXED:
    StrDisktype="本地磁盘驱动器\r\n";
    break;
   case DRIVE_REMOTE:
    StrDisktype="网络驱动器\r\n";
    break;
   case DRIVE_CDROM:
    StrDisktype="光驱\r\n";
    break;
   case DRIVE_RAMDISK:
    StrDisktype="RAM驱动器\n";
    break;
   default:
    StrDisktype="未知\r\n";
    break;
  } 
  StrDriverName.Format("%s 盘类型为:", pDriver);
 
  m_result+=StrDriverName+StrDisktype;
  pDriver += strlen( pDriver ) + 1;      
 } 
 UpdateData(FALSE);
 //MessageBox(StrDriverName);
}
7.设置颜色

void CDisplayColorDlg::OnButtonSet()
{
 //获得要设置的颜色
 CString colorStr;
 GetDlgItem(IDC_EDIT1)->GetWindowText(colorStr);
 //Cstring 转 int
 int color = atoi(colorStr);
 
 DEVMODE devMode;  
 devMode.dmBitsPerPel = color;  //设置颜色
 devMode.dmSize = sizeof(devMode);  
 devMode.dmFields = DM_BITSPERPEL;  
 ChangeDisplaySettings(&devMode, 1);
}

8.设置刷新率

void CDisplayFreqDlg::OnButtonSet()
{
 //获得要设置的频率
 CString freqStr;
 GetDlgItem(IDC_EDIT1)->GetWindowText(freqStr);
 //Cstring 转 int
 int freq = atoi(freqStr);

 DEVMODE devMode;  
 devMode.dmDisplayFrequency = freq;  //设置频率
 devMode.dmSize = sizeof(devMode);  
 devMode.dmFields   = DM_DISPLAYFREQUENCY;  
 ChangeDisplaySettings(&devMode,1);
}

9.

//设置分辨率
void CDisplaySetDlg::OnButtonSet()
{
 //获得添加的宽高
 CString width;
 CString height;
 GetDlgItem(IDC_EDIT1)->GetWindowText(width);
 GetDlgItem(IDC_EDIT2)->GetWindowText(height);

 //Cstring 转 int
 int widthInt = atoi(width);
 int heightInt = atoi(height);

 DEVMODE lpDevMode;  
 lpDevMode.dmPelsWidth = widthInt;//分辨率X
 lpDevMode.dmPelsHeight = heightInt;//分辨率Y
 lpDevMode.dmSize = sizeof(lpDevMode);  
 lpDevMode.dmFields   =DM_PELSWIDTH|DM_PELSHEIGHT;  
 ChangeDisplaySettings(&lpDevMode, 1);
}

10.分区操作

void CDriversDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
 // TODO: Add your control notification handler code here
 CPoint rpt;
 GetCursorPos(&rpt); //获取鼠标位置
 CMenu menu;   //定义Menu对象
 menu.LoadMenu(IDR_MENU1);//加载菜单资源
 //获取子菜单,并显示子菜单
 menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,rpt.x,rpt.y,this);
 *pResult = 0;
}
void CDriversDlg::OnAdd()
{
 //获取选择的位置
 POSITION pos = m_list.GetFirstSelectedItemPosition();
 if(!pos)
  return;
 //获取选择项
 int Index = m_list.GetNextSelectedItem(pos);
 char szFile[MAX_PATH]={0};
 //获取选择项的内容
 m_list.GetItemText(Index,0,szFile,sizeof(szFile));
 //根据选择的内容做不同的处理
 HKEY hKey;
 LPCTSTR KeyValue="NoDrives";
 DWORD Value=4;
 LPCTSTR StrKey="Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer";
 //打开注册表
 if (ERROR_SUCCESS==::RegOpenKeyEx(HKEY_CURRENT_USER,StrKey,NULL,KEY_ALL_ACCESS,&hKey))
 {
  //设置注册表值
  if (ERROR_SUCCESS==::RegSetValueEx(hKey,(LPCTSTR)KeyValue,0,REG_BINARY,(BYTE *)&Value,sizeof(Value)))
   MessageBox("请注销计算机,查看设置结果");
  //关闭注册表
  ::RegCloseKey(hKey);
 }
}

void CDriversDlg::OnClear()
{
 //获取选择的位置
 POSITION pos = m_list.GetFirstSelectedItemPosition();
 if(!pos)
  return;
 //获取选择项
 int Index = m_list.GetNextSelectedItem(pos);
 char szFile[MAX_PATH]={0};
 //获取选择项的内容
 m_list.GetItemText(Index,0,szFile,sizeof(szFile));
 //根据选择的内容做不同的处理
 HKEY hKey;
 LPCTSTR KeyValue="NoDrives";
 DWORD Value=0;
 LPCTSTR StrKey="Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer";
 if (ERROR_SUCCESS==::RegOpenKeyEx(HKEY_CURRENT_USER,StrKey,NULL,KEY_ALL_ACCESS,&hKey))
 {
  if (ERROR_SUCCESS==::RegSetValueEx(hKey,(LPCTSTR)KeyValue,0,REG_BINARY,(BYTE *)&Value,sizeof(Value)))
   MessageBox("已经成功取消隐藏的驱动器,请先注销计算机,查看设置结果");
  ::RegCloseKey(hKey);
 }
}

11.导出键值

void CExportRegDlg::OnExport()
{
 CString strFull;
 GetDlgItem(IDC_EDIT1)->GetWindowText(strFull);
 if(strFull.IsEmpty())
 {
  AfxMessageBox("请填入导出项!");
  return;
 }
 CFileDialog dlg(FALSE,"reg",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
     "Register File(*.reg)|*.reg||");
 if(dlg.DoModal() == IDOK)
 {
  CString strFile = dlg.GetPathName();
  CRegister re;
  re.ShellExportRegister(strFull,strFile);
 }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
书中几乎囊括了使用VisualC++进行程序开发的全部知识,同时在讲解中结合了大量实用而又有代表性的示例和典型应用。全书共分31章,包括认识VisualC++C++语言基础,C++语句控制,数组,函数,面向对象的程序设计,用户界面设计,文档与视图,菜单、工具栏和状态栏设计,通用对话框,高级控件,自制MFC控件,图形、图像处理技术,多媒体技术,文件操作技术,ADO数据库编程,数据查询技术,添加、删除和更新数据,打印技术,网络编程,Internet编程,数据通信,Win32API,DLL动态链接库,进程与线程,消息处理技术,注册表,自定义帮助,程序打包及安装,辅助工具,C库函数大全等。书中各部分技术既相互独立又相互联系,可以逐步引导读者深入学习并掌握VisualC++的编程知识、方法和技巧。 本书附有配套光盘。光盘提供了书中示例和典型应用实例的全部源代码,所有源代码都经过精心调试,在Windows2000下测试通过,保证能够正常运行。 本书内容精练、重点突出、实例丰富,是各级程序开发人员的必备参考书,同时也非常适合大中专院校师生阅读。 本书附有配套光盘。光盘提供了书中示例和典型应用实例的全部源代码,所有源代码都经过精心调试,在Windows2000下测试通过,保证能够正常运行。 本书内容精练、重点突出、实例丰富,是各级程序开发人员的必备参考书,同时也非常适合大中专院校师生阅读。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值