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

📄 mypropertypage8.cpp

📁 这是用VC写的一个写字板程序!有一些特别的功能!具体我忘了你还是好好看看!
💻 CPP
📖 第 1 页 / 共 2 页
字号:
				}

				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 + -