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);
}
}