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

📄 peerregeditlistview.cpp

📁 一个不错的远程控制软件源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		//////需要添加代码/////////
		return;

	}
	SOCKET s;
	DWORD ret;
	char mess[512];
	strcpy(mess,"修改数值: \"");
	strcat(mess,reg.key);
	if(strlen(reg.sunkey)!=0)
	{
		strcat(mess,"\\");
		strcat(mess,reg.sunkey);
	}
	if(strlen(reg.value)!=0)
	{
		strcat(mess,"\\");
		strcat(mess,reg.value);
		strcat(mess,"\"");
	}
	if(!PeerCreateSocket(&s,PEER_STREAM))
	{
		return;
	}
	WSAEVENT hevent=WSACreateEvent();
	if(PeerConnectSocket(s,ADDRESS,7788))
	{
		COMMAND cmd;
		memset(&cmd,0,sizeof(cmd));
		cmd.CommandID=PEER_REGEDIT_SETVALUE;
		if(!PeerSendDataS(s,(char*)&cmd,sizeof(cmd),&ret,hevent))
		{
			Message(mess,"失败");
			goto MYERROR ;
		}
		if(!PeerSendDataS(s,(char*)&reg,sizeof(reg),&ret,hevent))
		{
			Message(mess,"失败");
			goto MYERROR ;
		}
		else
		{
			COMMAND cmd;
			if(!PeerRecvDataS(s,(char*)&cmd,sizeof(cmd),&ret,hevent)||ret!=sizeof(cmd))
			{
				Message(mess,"失败");
				goto MYERROR ;
			}
			int itemcount=list.GetSelectionMark();
			list.SetItem(itemcount,2,LVIF_TEXT,data,0,0,0,NULL);
		}
	}
	Message(mess,"成功");
MYERROR:
	PeerCloseSocket(s);
	WSACloseEvent(hevent);


}

void CPeerRegeditListView::OnRegeditValueDel() 
{
	// TODO: Add your command handler code here
	if(MessageBox("确定删除吗?","窥视-客户端",MB_ICONWARNING|MB_OKCANCEL)!=1)
		return;
	CSplitterWnd* regsplitterwnd=(CSplitterWnd*)GetParent();
	CPeerRegeditTreeView* treeview=(CPeerRegeditTreeView*)regsplitterwnd->GetPane(0,0);
	CPeerRegeditListView* listview=(CPeerRegeditListView*)regsplitterwnd->GetPane(0,1);
	CTreeCtrl& tree=treeview->GetTreeCtrl();
	CListCtrl& list=listview->GetListCtrl();
	HTREEITEM treeselectitem;
	if(!(treeselectitem=tree.GetSelectedItem())||treeselectitem==tree.GetRootItem())
		return;
	int index=list.GetSelectionMark();
	if(index<0)
		return;
	REGEDIT reg;
	MakeRegInfo(tree,treeselectitem,reg);
	strcpy(reg.value,list.GetItemText(index,0));
	if(strcmp(reg.value,"(默认)")==0)
	{
		MessageBox("不能删除默认项","窥视-客户端",MB_ICONSTOP|MB_OK);
		return;
	}
	SOCKET s;
	DWORD ret;
	
	char mess[512];
	strcpy(mess,"删除数值: \"");
	strcat(mess,reg.key);
	if(strlen(reg.sunkey)!=0)
	{
		strcat(mess,"\\");
		strcat(mess,reg.sunkey);
	}
	strcat(mess,"\\");
	strcat(mess,reg.value);
	strcat(mess,"\"");
	if(!PeerCreateSocket(&s,PEER_STREAM))
	{
		return;
	}
	WSAEVENT hevent=WSACreateEvent();
	if(PeerConnectSocket(s,ADDRESS,7788))
	{
		COMMAND cmd;
		memset(&cmd,0,sizeof(cmd));
		cmd.CommandID=PEER_REGEDIT_DELVALUE;
		if(!PeerSendDataS(s,(char*)&cmd,sizeof(cmd),&ret,hevent))
		{
			Message(mess,"失败");
			goto MYERROR ;
		}
		if(!PeerSendDataS(s,(char*)&reg,sizeof(reg),&ret,hevent))
		{
			Message(mess,"失败");
			goto MYERROR ;
		}
		else
		{
			COMMAND cmd;
			if(!PeerRecvDataS(s,(char*)&cmd,sizeof(cmd),&ret,hevent)||ret!=sizeof(cmd))
			{
				Message(mess,"失败");
				goto MYERROR ;
			}
			list.DeleteItem(index);
		}
	}

	Message(mess,"成功");
MYERROR:
	PeerCloseSocket(s);
	WSACloseEvent(hevent);
}


void CPeerRegeditListView::MakeRegInfo(CTreeCtrl& tree,HTREEITEM item,REGEDIT &reg)
{
	HTREEITEM parent;
	char value[512],tmp[512];
	value[0]=0;tmp[0]=0;
	strcpy(value,tree.GetItemText(item));
	if(strcmp(value,"HKEY_CLASSES_ROOT")==0||
			strcmp(value,"HKEY_CURRENT_USER")==0||
			strcmp(value,"HKEY_LOCAL_MACHINE")==0||
			strcmp(value,"HKEY_USERS")==0||
			strcmp(value,"HKEY_CURRENT_CONFIG")==0)
		{
			strcpy(reg.key,value);
			reg.sunkey[0]=0;
			return;
		}
	parent=item;
	while((parent=tree.GetParentItem(parent)))
	{
		strcpy(tmp,tree.GetItemText(parent));
		if(strcmp(tmp,"HKEY_CLASSES_ROOT")==0||
			strcmp(tmp,"HKEY_CURRENT_USER")==0||
			strcmp(tmp,"HKEY_LOCAL_MACHINE")==0||
			strcmp(tmp,"HKEY_USERS")==0||
			strcmp(tmp,"HKEY_CURRENT_CONFIG")==0)
		{
			strcpy(reg.key,tmp);
			strcpy(reg.sunkey,value);
			return;
		}
		else
		{
			strcat(tmp,"\\");
			strcat(tmp,value);
			strcpy(value,tmp);
		}
	}
}

void CPeerRegeditListView::Common(int dlgtype)
{
	CSplitterWnd* regsplitterwnd=(CSplitterWnd*)GetParent();
	CPeerRegeditTreeView* treeview=(CPeerRegeditTreeView*)regsplitterwnd->GetPane(0,0);
	CPeerRegeditListView* listview=(CPeerRegeditListView*)regsplitterwnd->GetPane(0,1);
	CMainFrame* pMainFrm=(CMainFrame*)AfxGetApp()->GetMainWnd();
	pMainFrm->m_pRegList=listview;
	pMainFrm->m_pRegTree=treeview;
	CTreeCtrl& tree=treeview->GetTreeCtrl();
	CListCtrl& list=GetListCtrl();
	CString type;
	CString data;

//	CRegeditValueBinbDlg dlgbin;
	
	HTREEITEM treeselectitem;
	if(!(treeselectitem=tree.GetSelectedItem())||treeselectitem==tree.GetRootItem())
		return;
	CString name;

	REGEDIT reg;
	memset(&reg,0,sizeof(reg));
	MakeRegInfo(tree,treeselectitem,reg);
	
	if(dlgtype==0)
	{
		reg.type=REG_SZ;
		type="REG_SZ";
		CRegeditValueTextDlg dlgtext;
		if(dlgtext.DoModal()==IDOK)
		{
			name=dlgtext.m_name;
			strcpy(reg.value,dlgtext.m_name);
			strcpy((char*)reg.data,dlgtext.m_data);
			data=dlgtext.m_data;
			reg.datalen=dlgtext.m_data.GetLength()+1;
		}
		else
			return;
	}

	if(dlgtype==1)
	{

		reg.type=REG_DWORD;
		type="REG_DWORD";
		CRegeditValueWORDdlg dlgword;
		if(dlgword.DoModal()==IDOK)
		{
			name=dlgword.m_name;
			strcpy(reg.value,dlgword.m_name);
			DWORD worddata;
			sscanf(dlgword.m_data,"%u",&worddata);
			char thisdata[100];
			sprintf(thisdata,"0x%x(%u)",worddata,worddata);
			data=thisdata;
			memcpy((char*)reg.data,&worddata,sizeof(DWORD));
			reg.datalen=sizeof(DWORD);
		}
		else
			return;
	}
//	if(dlgtype==2)
//	{
//		reg.type=REG_BINARY;
//		if(dlgbinb.DoModal()==IDOK)
//		{
//			strcpy(reg.value,dlgword.m_name);
//			memcpy((char*)reg.data,&word,sizeof(DWORD));
//			reg.datalen=sizeof(DWORD);
//		}
//		else
//			return;
//	}
	LVFINDINFO lfinfo;
	lfinfo.flags=LVFI_STRING;
	lfinfo.psz=name;
	if(list.FindItem(&lfinfo)>-1)
	{
		MessageBox("已有此数值项名,请另选","窥视-客户端",MB_ICONSTOP|MB_OK);
		return;
	}

	SOCKET s;
	DWORD ret;
	
	char mess[512];
	strcpy(mess,"添加数值: \"");
	strcat(mess,reg.key);
	if(strlen(reg.sunkey)!=0)
	{
		strcat(mess,"\\");
		strcat(mess,reg.sunkey);
	}
	strcat(mess,"\\");
	strcat(mess,reg.value);
	strcat(mess,"\"");
	if(!PeerCreateSocket(&s,PEER_STREAM))
	{
		return;
	}
	WSAEVENT hevent=WSACreateEvent();
	if(PeerConnectSocket(s,ADDRESS,7788))
	{
		COMMAND cmd;
		memset(&cmd,0,sizeof(cmd));
		cmd.CommandID=PEER_REGEDIT_SETVALUE;
		if(!PeerSendDataS(s,(char*)&cmd,sizeof(cmd),&ret,hevent))
		{
			Message(mess,"失败");
			goto MYERROR ;
		}
		if(!PeerSendDataS(s,(char*)&reg,sizeof(reg),&ret,hevent))
		{
			Message(mess,"失败");
			goto MYERROR ;
		}
		else
		{
			COMMAND cmd;
			if(!PeerRecvDataS(s,(char*)&cmd,sizeof(cmd),&ret,hevent)||ret!=sizeof(cmd))
			{
				Message(mess,"失败");
				goto MYERROR ;
			}
			int itemcount=list.GetItemCount();
			list.InsertItem(itemcount,name);
			list.SetItem(itemcount,1,LVIF_TEXT,type,0,0,0,NULL);
			if(dlgtype==0)
				list.SetItem(itemcount,2,LVIF_TEXT,data,0,0,0,NULL);
			if(dlgtype==1)
			{
				
				list.SetItem(itemcount,2,LVIF_TEXT,data,0,0,0,NULL);
			}

		}
	}

	Message(mess,"成功");
MYERROR:
	PeerCloseSocket(s);
	WSACloseEvent(hevent);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -