📄 mypropertypage8.cpp
字号:
}
m_MTUpath=_T("System\\CurrentControlSet\\Services\\Class\\");
wsprintf(m_buffer,"Enum\\Network\\%s",m_name);
m_MTUpath+=_T(m_ini.GetStringKey(HKEY_LOCAL_MACHINE,m_buffer,"Driver"));
break;
}
m_namelen=200;
memset(m_name,0,200);
}
RegCloseKey(m_hkey);
}
m_Otherpath=_T("System\\CurrentControlSet\\Services\\VxD\\MSTCP");
m_FilePath=_T("Software\\Microsoft\\Windows\\CurrentVersion\\FS Templates");
MakeAllKeyExist();
}
void CMyPropertyPage8::MakeAllKeyExist()
{
COrganizeInifile m_ini;
if(!m_ini.KeynameExist(HKEY_LOCAL_MACHINE,m_MTUpath,_T("MaxMTU")))
m_ini.CreateStringKey(HKEY_LOCAL_MACHINE,m_MTUpath,_T("MaxMTU"),_T("1500"));
if(!m_ini.KeynameExist(HKEY_LOCAL_MACHINE,m_Otherpath,_T("DefaultTTL")))
m_ini.CreateStringKey(HKEY_LOCAL_MACHINE,m_Otherpath,_T("DefaultTTL"),_T("32"));
if(!m_ini.KeynameExist(HKEY_LOCAL_MACHINE,m_Otherpath,_T("DefaultRcvWindow")))
m_ini.CreateStringKey(HKEY_LOCAL_MACHINE,m_Otherpath,_T("DefaultRcvWindow"),_T("8192"));
if(!m_ini.KeynameExist(HKEY_LOCAL_MACHINE,m_Otherpath,_T("NameSrvQueryTimeout")))
m_ini.CreateStringKey(HKEY_LOCAL_MACHINE,m_Otherpath,_T("NameSrvQueryTimeout"),_T("750"));
CString m_path=m_FilePath+_T("\\Desktop");
long m_value=0;
if(!m_ini.KeynameExist(HKEY_LOCAL_MACHINE,m_path,"NameCache"))
{
m_value=32;
m_ini.CreateBinaryKey(HKEY_LOCAL_MACHINE,m_path,_T("NameCache"),m_value);
}
if(!m_ini.KeynameExist(HKEY_LOCAL_MACHINE,m_path,"PathCache"))
{
m_value=667;
m_ini.CreateBinaryKey(HKEY_LOCAL_MACHINE,m_path,_T("PathCache"),m_value);
}
m_path=m_FilePath+_T("\\Mobile");
if(!m_ini.KeynameExist(HKEY_LOCAL_MACHINE,m_path,"NameCache"))
{
m_value=16;
m_ini.CreateBinaryKey(HKEY_LOCAL_MACHINE,m_path,_T("NameCache"),m_value);
}
if(!m_ini.KeynameExist(HKEY_LOCAL_MACHINE,m_path,"PathCache"))
{
m_value=337;
m_ini.CreateBinaryKey(HKEY_LOCAL_MACHINE,m_path,_T("PathCache"),m_value);
}
m_path=m_FilePath+_T("\\Server");
if(!m_ini.KeynameExist(HKEY_LOCAL_MACHINE,m_path,"NameCache"))
{
m_value=64;
m_ini.CreateBinaryKey(HKEY_LOCAL_MACHINE,m_path,_T("NameCache"),m_value);
}
if(!m_ini.KeynameExist(HKEY_LOCAL_MACHINE,m_path,"PathCache"))
{
m_value=2729;
m_ini.CreateBinaryKey(HKEY_LOCAL_MACHINE,m_path,_T("PathCache"),m_value);
}
}
void CMyPropertyPage8::GetFileSystem()
{
COrganizeInifile m_ini;
CString m_value=m_ini.GetStringKey(HKEY_LOCAL_MACHINE,m_FilePath,_T(""));
CString m_path=m_FilePath;
m_platmode=0;
if(m_value.CompareNoCase("Desktop")==0)
{
m_path+=_T("\\Desktop");
m_platmode=1;
}
if(m_value.CompareNoCase("Server")==0)
{
m_path+=_T("\\Server");
m_platmode=2;
}
if(m_value.CompareNoCase("Mobile")==0)
{
m_path+=_T("\\Mobile");
m_platmode=3;
}
m_namecache.SetRange(0,500);
m_pathcache.SetRange(0,20000);
m_files=m_ini.GetDwordKey(HKEY_LOCAL_MACHINE,m_path,_T("NameCache"));
m_namecache.SetPos(m_files);
m_folders=m_ini.GetDwordKey(HKEY_LOCAL_MACHINE,m_path,_T("PathCache"));
m_pathcache.SetPos(m_folders);
m_namecache.SetPageSize(10);
m_pathcache.SetPageSize(50);
switch(m_platmode)
{
case 0:
AfxMessageBox("获取失败");
break;
case 1:
CheckRadioButton(IDC_DESKTOP,IDC_SERVER,IDC_DESKTOP);
break;
case 2:
CheckRadioButton(IDC_DESKTOP,IDC_SERVER,IDC_MOBILE);
break;
case 3:
CheckRadioButton(IDC_DESKTOP,IDC_SERVER,IDC_SERVER);
break;
}
}
void CMyPropertyPage8::OnRight()
{
m_maxmtu=576;
m_ttl =255;
m_receive=5120;
m_querytime=3000;
m_files =128;
m_folders=4096;
UpdateData(FALSE);
OnChangeFilenumber();
OnChangeFolders();
OnEffect();
}
void CMyPropertyPage8::OnChangeFilenumber()
{
UpdateData(TRUE);
m_namecache.SetPos(m_files);
m_changed=TRUE;
EnablePanel();
}
void CMyPropertyPage8::OnChangeFolders()
{
UpdateData(TRUE);
m_pathcache.SetPos(m_folders);
m_changed=TRUE;
EnablePanel();
}
void CMyPropertyPage8::ToSystemIni()
{
char windows[200];
GetWindowsDirectory(windows,200);
strcat(windows,"\\system.ini");
WritePrivateProfileString("386Enh","com4buffer","1024",windows);
}
void CMyPropertyPage8::InsertNItem(int n,char *extname,char *exename)
{
SetNMItem(n,0,extname);
SetNMItem(n,1,exename);
}
void CMyPropertyPage8::SetNMItem(int n,int m,char *value)
{
LV_ITEM lvi;
if(m==0)
{
lvi.mask=LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM;
lvi.iItem=n;
lvi.iSubItem=m;
lvi.pszText=value;
lvi.iImage=0;
lvi.lParam=n;
m_linklist.InsertItem(&lvi);
}
else
{
lvi.mask=LVIF_TEXT;
lvi.iItem=n;
lvi.iSubItem=m;
lvi.pszText=value;
m_linklist.SetItem(&lvi);
}
}
void CMyPropertyPage8::OnBrowse()
{
CFileDialog dlg(TRUE,"*.exe",m_linkfile,OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"可执行文件 (*.exe)|*.exe||");
if(dlg.DoModal()==IDOK)
{
m_linkfile=dlg.GetPathName();
UpdateData(FALSE);
EnablePanel();
}
}
void CMyPropertyPage8::OnChangeExtname()
{
EnablePanel();
}
void CMyPropertyPage8::OnChangeLinktofile()
{
EnablePanel();
}
CListCtrl *m_list=NULL;
int CALLBACK CompareFunc(LPARAM lParam1,LPARAM lParam2,LPARAM lParamSort)
{
char text1[255],text2[255];
memset(text1,0,255);
memset(text2,0,255);
switch(lParamSort)
{
case 0L:
m_list->GetItemText(lParam1,0,text1,255);
m_list->GetItemText(lParam2,0,text2,255);
break;
case 1L:
m_list->GetItemText(lParam1,1,text1,255);
m_list->GetItemText(lParam2,1,text2,255);
break;
}
return (strcmp(text1,text2));
}
void CMyPropertyPage8::OnColumnclickFilelinklist(NMHDR* pNMHDR, LRESULT* pResult)
{
m_list=&m_linklist;
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->iSubItem==-1)
return;
int sortnum=pNMListView->iSubItem;
m_linklist.SortItems((PFNLVCOMPARE)CompareFunc,sortnum);
*pResult = 0;
}
void CMyPropertyPage8::OnRclickFilelinklist(NMHDR* pNMHDR, LRESULT* pResult)
{
CMenu menu;
menu.CreatePopupMenu();
CPoint point;
GetCursorPos(&point);
menu.AppendMenu(MF_ENABLED,IDC_DELETESTART,"删除关联");
menu.AppendMenu(MF_ENABLED,IDC_REFRESH,"刷新关联");
menu.TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
*pResult = 0;
}
void CMyPropertyPage8::OnKeydownFilelinklist(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR;
switch(pLVKeyDow->wVKey)
{
case VK_DELETE:
OnDeleteLink();
break;
case VK_F2:
{
int itemsel=m_linklist.GetSelectedCount();
int itemcount=m_linklist.GetItemCount();
if(itemsel<1)
return;
while(itemcount)
{
int state=m_linklist.GetItemState(itemcount-1,LVIS_SELECTED);
if(state!=0)
break;
itemcount--;
}
m_linklist.EditLabel(itemcount-1);
}
break;
}
*pResult = 0;
}
void CMyPropertyPage8::OnDeleteLink()
{
char m_backfile[256];
GetModuleFileName(AfxGetInstanceHandle(),m_backfile,256);
char *m_pos=strrchr(m_backfile,'.');
strcpy(m_pos,".reg");
RegSaveKey(HKEY_CLASSES_ROOT,m_backfile,NULL);
int itemsel=m_linklist.GetSelectedCount();
int itemcount=m_linklist.GetItemCount();
if(itemsel<1)
return;
char m_extfile[100],m_linkexefile[200];
while(itemcount)
{
int state=m_linklist.GetItemState(itemcount-1,LVIS_SELECTED);
if(state!=0)
{
memset(m_extfile,0,100);
memset(m_linkexefile,0,200);
m_linklist.GetItemText(itemcount-1,0,m_extfile,100);
m_linklist.GetItemText(itemcount-1,1,m_linkexefile,200);
if(strcmpi(m_linkexefile,"系统文件")!=0)
DeleteLink(_T(m_extfile));
m_linklist.DeleteItem(itemcount-1);
}
itemcount--;
}
m_linklist.SetItemState(0,LVIF_STATE,LVIS_SELECTED);
}
CString CMyPropertyPage8::FindExecuteFile(char *m_indexname)
{
COrganizeInifile m_ini;
CString m_entry=m_ini.GetStringKey(HKEY_CLASSES_ROOT,_T(m_indexname),_T(""));
m_entry+=_T("\\Shell");
CString m_keyname=m_ini.GetStringKey(HKEY_CLASSES_ROOT,m_entry,_T(""));
if(m_keyname==_T(""))
{
HKEY m_hkey;
if(RegOpenKeyEx(HKEY_CLASSES_ROOT,m_entry,0,KEY_ALL_ACCESS,&m_hkey)==ERROR_SUCCESS)
{
char m_name[200];
DWORD m_index=0;
memset(m_name,0,200);
while(RegEnumKey(m_hkey,m_index,m_name,200)==ERROR_SUCCESS)
{
if(strstr(m_name,"Open")!=0 || strstr(m_name,"open")!=0)
{
RegCloseKey(m_hkey);
m_entry+=_T("\\");
m_entry+=_T(m_name);
m_entry+=_T("\\Command");
return m_ini.GetStringKey(HKEY_CLASSES_ROOT,m_entry,_T(""));
}
memset(m_name,0,200);
m_index++;
}
RegCloseKey(m_hkey);
}
return _T("");
}
else
{
m_entry+=_T("\\");
m_entry+=m_keyname;
m_entry+=_T("\\Command");
}
return m_ini.GetStringKey(HKEY_CLASSES_ROOT,m_entry,_T(""));
}
void CMyPropertyPage8::AllLinkToList()
{
m_linklist.DeleteAllItems();
HKEY m_key=HKEY_CLASSES_ROOT;
char m_name[200];
DWORD m_namelen=200,m_index=0;
memset(m_name,0,200);
while(RegEnumKey(m_key,m_index,m_name,m_namelen)==ERROR_SUCCESS)
{
if(m_name[0]=='.')
{
CString m_exe=FindExecuteFile(m_name);
if(m_exe!=_T(""))
InsertNItem(0,(char *)&m_name[1],m_exe.GetBuffer(m_exe.GetLength()));
else
InsertNItem(0,(char *)&m_name[1],_T("系统文件"));
}
m_index++;
m_namelen=200;
memset(m_name,0,200);
}
m_linklist.SetItemState(0,LVIF_STATE,LVIS_SELECTED);
}
void CMyPropertyPage8::DeleteLink(CString m_ext)
{
COrganizeInifile m_ini;
m_ini.DeleteFileLink(m_ext);
}
void CMyPropertyPage8::AddLink(CString m_ext,CString m_exe,CString m_footname,CString m_menuname)
{
COrganizeInifile m_ini;
m_ini.AddFileLink(m_ext,m_exe,m_footname,m_menuname);
}
void CMyPropertyPage8::OnChangeFootname()
{
EnablePanel();
}
void CMyPropertyPage8::OnChangeMenuname()
{
EnablePanel();
}
void CMyPropertyPage8::OnRefresh()
{
AllLinkToList();
}
void CMyPropertyPage8::OnLink()
{
AddLink(m_extname,m_linkfile,m_foot,m_menu);
OnRefresh();
}
void CMyPropertyPage8::OnClearemptydir()
{
UpdateData(TRUE);
m_sheet->m_ClearEmpty=m_clear;
}
BOOL CMyPropertyPage8::PreTranslateMessage(MSG* pMsg)
{
m_tooltip.RelayEvent(pMsg);
return CPropertyPage::PreTranslateMessage(pMsg);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -