📄 propertypage7.cpp
字号:
memset(m_name,0,200);
memset(m_dada,0,200);
while(RegEnumValue(m_hkey,m_index,m_name,&m_namelen,NULL,&m_attr,(LPBYTE)m_dada,&m_datalen)==ERROR_SUCCESS)
{
m_index++;
if(strcmp(m_name,"")!=0)
InsertTreeItem(m_start,m_name,3001+m_index,m_root,0);
m_namelen=200;
m_datalen=200;
memset(m_name,0,200);
memset(m_dada,0,200);
}
if(RegCloseKey(m_hkey)!=ERROR_SUCCESS)
MessageBox("关闭键值失败");
}
}
BOOL CPropertyPage7::FileExist(CString m_file)
{
BOOL ret=FALSE;
if(m_file==_T(""))
return ret;
HANDLE file=CreateFile(m_file,0,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(file!=INVALID_HANDLE_VALUE)
{
CloseHandle(file);
ret=TRUE;
}
return ret;
}
//创建树
HTREEITEM CPropertyPage7::CreateTree(CTreeCtrl &tree,char * text)
{
TV_INSERTSTRUCT tci;
tci.item.mask=TVIF_TEXT|TVIF_PARAM;
tci.item.stateMask=0;
tci.item.pszText=text;
tci.item.iImage=I_IMAGECALLBACK;
tci.item.iSelectedImage=I_IMAGECALLBACK;
tci.item.cchTextMax=lstrlen(tci.item.pszText);
tci.item.lParam=0;
tci.hParent=NULL;
tci.hInsertAfter=TVI_LAST;
return(tree.InsertItem(&tci));
}
//插入一项到树中
HTREEITEM CPropertyPage7::InsertTreeItem(CTreeCtrl &tree,char * text,int index,HTREEITEM parent,int image)
{
TV_INSERTSTRUCT tci;
tci.item.mask=TVIF_TEXT|TVIF_PARAM;
tci.item.stateMask=0;
tci.item.pszText=text;
tci.item.iImage=0;
tci.item.iSelectedImage=image;
tci.item.cchTextMax=lstrlen(tci.item.pszText);
tci.item.lParam=index;
tci.hParent=parent;
tci.hInsertAfter=TVI_LAST;
return(tree.InsertItem(&tci));
}
void CPropertyPage7::OnSelectdir()
{
CGetDirectory m_dir(this);
m_dir.DoModal();
m_error=m_directory;
UpdateData(FALSE);
}
void CPropertyPage7::OnSetupattribute()
{
UpdateData(TRUE);
m_error=_T("开始设置属性");
UpdateData(FALSE);
DWORD m_attr=FILE_ATTRIBUTE_NORMAL;
if(m_text)
m_attr|=FILE_ATTRIBUTE_ARCHIVE;
if(m_read)
m_attr|=FILE_ATTRIBUTE_READONLY;
if(m_hidden)
m_attr|=FILE_ATTRIBUTE_HIDDEN;
if(m_system)
m_attr|=FILE_ATTRIBUTE_SYSTEM;
char * m_dirname=m_directory.GetBuffer(m_directory.GetLength());
SetAllFileAttrs(m_dirname,m_attr);
m_error=_T("属性设置完毕");
UpdateData(FALSE);
}
void CPropertyPage7::SetAllFileAttrs(char *m_dir,DWORD m_attr)
{
int ret=0;
struct _finddata_t fileinfo;
char m_dirname[250];
wsprintf(m_dirname,"%s\\*.*",m_dir);
long handle=_findfirst(m_dirname,&fileinfo);
while(handle>0 && (ret==0))
{
if(fileinfo.attrib & _A_SUBDIR)
{
if((strcmpi(fileinfo.name,".")!=0) && (strcmpi(fileinfo.name,"..")!=0))
{
wsprintf(m_dirname,"%s\\%s",m_dir,fileinfo.name);
SetAllFileAttrs(m_dirname,m_attr);
}
}
else
{
wsprintf(m_dirname,"%s\\%s",m_dir,fileinfo.name);
SetFileAttributes(m_dirname,m_attr);
m_error=_T(m_dirname);
UpdateData(FALSE);
}
ret=_findnext(handle,&fileinfo);
}
}
void CPropertyPage7::DeleteIni(char *buffer,char *m_name)
{
char * m_find=strstr(buffer,m_name);
int m_len=strlen(m_name);
if(m_find!=NULL)
{
strcpy(m_find,m_find+m_len);
*(m_find+m_len)='\0';
}
}
void CPropertyPage7::DeleteWinini(char * m_name)
{
char buffer[255],windows[200];
GetWindowsDirectory(windows,200);
strcat(windows,"\\win.ini");
GetPrivateProfileString("windows","load","",buffer,255,windows);
DeleteIni(buffer,m_name);
WritePrivateProfileString("windows","load",buffer,windows);
GetPrivateProfileString("windows","run","",buffer,255,windows);
DeleteIni(buffer,m_name);
WritePrivateProfileString("windows","run",buffer,windows);
}
void CPropertyPage7::DeleteStartup(char * m_name)
{
char m_dirname[200];
GetWindowsDirectory(m_dirname,200);
strcat(m_dirname,"\\Start Menu\\Programs\\启动\\");
strcat(m_dirname,m_name);
DeleteFile(m_dirname);
}
void CPropertyPage7::DeleteRegistry(char * m_name)
{
COrganizeInifile m_ini;
m_ini.DeleteKeyValue(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",m_name);
m_ini.DeleteKeyValue(HKEY_CURRENT_USER,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",m_name);
}
void CPropertyPage7::DeleteSelfStart(char * m_name,int m_pos)
{
switch(m_pos)
{
case 1:
DeleteWinini(m_name);
break;
case 2:
DeleteStartup(m_name);
break;
case 3:
DeleteRegistry(m_name);
break;
}
}
void CPropertyPage7::OnDeleteshortcut()
{
HTREEITEM hSel=m_start.GetSelectedItem();
DWORD m_data=m_start.GetItemData(hSel);
CString m_name=m_start.GetItemText(hSel);
DeleteSelfStart(m_name.GetBuffer(m_name.GetLength()),(int)(m_data/1000));
m_start.DeleteItem(hSel);
}
void CPropertyPage7::OnRefresh()
{
InitPanel();
EnablePanel();
}
void CPropertyPage7::OnBrowse()
{
CFileDialog dlg(TRUE,"*.bmp",m_begin,OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"图片文件 (*.bmp)|*.bmp||");
if(dlg.DoModal()==IDOK)
{
m_begin=dlg.GetPathName();
UpdateData(FALSE);
EnablePanel();
}
}
void CPropertyPage7::OnBrowse2()
{
CFileDialog dlg(TRUE,"*.bmp",m_end,OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"图片文件 (*.bmp)|*.bmp||");
if(dlg.DoModal()==IDOK)
{
m_end=dlg.GetPathName();
UpdateData(FALSE);
EnablePanel();
}
}
void CPropertyPage7::OnBrowse3()
{
CFileDialog dlg(TRUE,"*.bmp",m_reset,OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"图片文件 (*.bmp)|*.bmp||");
if(dlg.DoModal()==IDOK)
{
m_reset=dlg.GetPathName();
UpdateData(FALSE);
EnablePanel();
}
}
void CPropertyPage7::OnChangeEndpicture()
{
EnablePanel();
}
void CPropertyPage7::OnChangeRestartpicture()
{
EnablePanel();
}
void CPropertyPage7::OnChangeStartpicture()
{
EnablePanel();
}
void CPropertyPage7::SaveAsForeword(CString m_bit,int m_mode)
{
char windows[200];
GetWindowsDirectory(windows,200);
CString m_desfile=_T(windows);
char * sou,*des;
DWORD m_attr=FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL;
BOOL m_logo=FALSE;
switch(m_mode)
{
case 1:
m_desfile=_T("c:\\logo.sys");
SetFileAttributes("c:\\msdos.sys",m_attr);
wsprintf(windows,"%d",1);
WritePrivateProfileString("Options","Logo",windows,"c:\\msdos.sys");
m_attr|=FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM;
SetFileAttributes("c:\\msdos.sys",m_attr);
break;
case 2:
m_desfile+=_T("\\logow.sys");
break;
case 3:
m_desfile+=_T("\\logos.sys");
break;
}
sou=m_bit.GetBuffer(m_bit.GetLength());
des=m_desfile.GetBuffer(m_desfile.GetLength());
if(strcmpi(sou,des)!=0)
{
SetFileAttributes(m_desfile,m_attr);
DeleteFile(m_desfile);
CopyFile(sou,des,FALSE);
}
}
void CPropertyPage7::OnSetup()
{
SaveAsForeword(m_begin,1);
}
void CPropertyPage7::OnSetup2()
{
SaveAsForeword(m_end,2);
}
void CPropertyPage7::OnSetup3()
{
SaveAsForeword(m_reset,3);
}
BOOL CPropertyPage7::PreTranslateMessage(MSG* pMsg)
{
m_tooltip.RelayEvent(pMsg);
return CPropertyPage::PreTranslateMessage(pMsg);
}
BOOL CPropertyPage7::OnInitDialog()
{
CPropertyPage::OnInitDialog();
m_tooltip.Create(this);
m_tooltip.Activate(TRUE);
m_tooltip.AddTool(GetDlgItem(IDC_EXECUTEFILE),"要创建快捷方式的可执行文件名");
m_tooltip.AddTool(GetDlgItem(IDC_BROWSEEXECUTE),"寻找可执行文件");
m_tooltip.AddTool(GetDlgItem(IDC_SHORTNAME),"快捷方式全名");
m_tooltip.AddTool(GetDlgItem(IDC_STARTTREE),"所有快捷方式列表");
m_tooltip.AddTool(GetDlgItem(IDC_MAKEEFFECT),"创建快捷方式");
m_tooltip.AddTool(GetDlgItem(IDC_TEXTONLY),"设置文件属性为文本属性");
m_tooltip.AddTool(GetDlgItem(IDC_READONLY),"设置文件属性为只读属性");
m_tooltip.AddTool(GetDlgItem(IDC_HIDDENONLY),"设置文件属性为隐藏属性");
m_tooltip.AddTool(GetDlgItem(IDC_SYSTEMONLY),"设置文件属性为系统属性");
m_tooltip.AddTool(GetDlgItem(IDC_SELECTDIR),"选择要处理的目录");
m_tooltip.AddTool(GetDlgItem(IDC_SETUPATTRIBUTE),"设置目录下的所有文件属性为当前指定属性");
m_tooltip.AddTool(GetDlgItem(IDC_STARTPICTURE),"Windows开机启动画面");
m_tooltip.AddTool(GetDlgItem(IDC_ENDPICTURE),"Windows正常关机画面");
m_tooltip.AddTool(GetDlgItem(IDC_RESTARTPICTURE),"Windows重新启动画面");
m_tooltip.AddTool(GetDlgItem(IDC_BROWSE),"搜索Windows开机启动画面文件(320x400x256)");
m_tooltip.AddTool(GetDlgItem(IDC_BROWSE2),"搜索Windows正常关机画面文件(320x400x256)");
m_tooltip.AddTool(GetDlgItem(IDC_BROWSE3),"搜索Windows重新启动画面文件(320x400x256)");
m_tooltip.AddTool(GetDlgItem(IDC_SETUP),"设置Windows开机启动画面");
m_tooltip.AddTool(GetDlgItem(IDC_SETUP2),"设置Windows正常关机画面");
m_tooltip.AddTool(GetDlgItem(IDC_SETUP3),"设置Windows重新启动画面");
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -