mirror of
https://github.com/Cc28256/CcRemote.git
synced 2025-08-14 21:01:45 +00:00
Compare commits
1 Commits
20200526.1
...
20200528.1
Author | SHA1 | Date | |
---|---|---|---|
![]() |
4bd0451420 |
Binary file not shown.
Binary file not shown.
186
CcRemote/CcRemote/CSystemDlg.cpp
Normal file
186
CcRemote/CcRemote/CSystemDlg.cpp
Normal file
@@ -0,0 +1,186 @@
|
||||
// CSystemDlg.cpp: 实现文件
|
||||
//
|
||||
|
||||
#include "pch.h"
|
||||
#include "CcRemote.h"
|
||||
#include "CSystemDlg.h"
|
||||
#include "afxdialogex.h"
|
||||
#include "..\..\common\macros.h"
|
||||
|
||||
|
||||
// CSystemDlg 对话框
|
||||
|
||||
IMPLEMENT_DYNAMIC(CSystemDlg, CDialog)
|
||||
|
||||
CSystemDlg::CSystemDlg(CWnd* pParent /*=nullptr*/, CIOCPServer* pIOCPServer, ClientContext *pContext)
|
||||
: CDialog(IDD_SYSTEM, pParent)
|
||||
{
|
||||
m_iocpServer = pIOCPServer; //就是一个赋值没什么特别的我们到oninitdialog
|
||||
m_pContext = pContext;
|
||||
m_hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_SYSTEM));
|
||||
}
|
||||
|
||||
CSystemDlg::~CSystemDlg()
|
||||
{
|
||||
}
|
||||
|
||||
void CSystemDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_TAB, m_tab);
|
||||
DDX_Control(pDX, IDC_LIST_WINDOWS, m_list_windows);
|
||||
DDX_Control(pDX, IDC_LIST_PROCESS, m_list_process);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CSystemDlg, CDialog)
|
||||
ON_WM_SIZE()
|
||||
ON_WM_CLOSE()
|
||||
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB, &CSystemDlg::OnTcnSelchangeTab)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CSystemDlg 消息处理程序
|
||||
|
||||
void CSystemDlg::AdjustList(void)
|
||||
{
|
||||
RECT rectClient;
|
||||
RECT rectList;
|
||||
GetClientRect(&rectClient);
|
||||
rectList.left = 0;
|
||||
rectList.top = 29;
|
||||
rectList.right = rectClient.right;
|
||||
rectList.bottom = rectClient.bottom;
|
||||
|
||||
m_list_process.MoveWindow(&rectList);
|
||||
m_list_windows.MoveWindow(&rectList);
|
||||
}
|
||||
|
||||
|
||||
void CSystemDlg::OnSize(UINT nType, int cx, int cy)
|
||||
{
|
||||
CDialog::OnSize(nType, cx, cy);
|
||||
AdjustList();
|
||||
// TODO: 在此处添加消息处理程序代码
|
||||
}
|
||||
|
||||
|
||||
void CSystemDlg::OnClose()
|
||||
{
|
||||
// TODO: 在此添加消息处理程序代码和/或调用默认值
|
||||
|
||||
CDialog::OnClose();
|
||||
}
|
||||
|
||||
|
||||
void CSystemDlg::OnTcnSelchangeTab(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
ShowSelectWindow();
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void CSystemDlg::ShowSelectWindow(void)
|
||||
{
|
||||
switch (m_tab.GetCurSel())
|
||||
{
|
||||
case 0:
|
||||
m_list_windows.ShowWindow(SW_HIDE);
|
||||
m_list_process.ShowWindow(SW_SHOW);
|
||||
if (m_list_process.GetItemCount() == 0)
|
||||
GetProcessList();
|
||||
break;
|
||||
case 1:
|
||||
m_list_windows.ShowWindow(SW_SHOW);
|
||||
m_list_process.ShowWindow(SW_HIDE);
|
||||
if (m_list_windows.GetItemCount() == 0)
|
||||
//GetWindowsList();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CSystemDlg::GetProcessList(void)
|
||||
{
|
||||
BYTE bToken = COMMAND_PSLIST;
|
||||
m_iocpServer->Send(m_pContext, &bToken, 1);
|
||||
}
|
||||
|
||||
|
||||
BOOL CSystemDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// TODO: 在此添加额外的初始化
|
||||
|
||||
SetIcon(m_hIcon, TRUE); // Set big icon
|
||||
SetIcon(m_hIcon, FALSE); // Set small icon
|
||||
|
||||
|
||||
CString str;
|
||||
sockaddr_in sockAddr;
|
||||
memset(&sockAddr, 0, sizeof(sockAddr));
|
||||
int nSockAddrLen = sizeof(sockAddr);
|
||||
BOOL bResult = getpeername(m_pContext->m_Socket, (SOCKADDR*)&sockAddr, &nSockAddrLen); //得到连接的ip
|
||||
str.Format("\\\\%s - 系统管理", bResult != INVALID_SOCKET ? inet_ntoa(sockAddr.sin_addr) : "");
|
||||
SetWindowText(str);//设置对话框标题
|
||||
|
||||
|
||||
m_tab.InsertItem(0, "进程管理"); //为tab设置标题
|
||||
m_tab.InsertItem(1, "窗口管理");
|
||||
m_tab.InsertItem(2, "拨号密码");
|
||||
|
||||
m_list_process.SetExtendedStyle(LVS_EX_FLATSB | LVS_EX_FULLROWSELECT); //初始化进程的列表
|
||||
m_list_process.InsertColumn(0, "映像名称", LVCFMT_LEFT, 100);
|
||||
m_list_process.InsertColumn(1, "PID", LVCFMT_LEFT, 50);
|
||||
m_list_process.InsertColumn(2, "程序路径", LVCFMT_LEFT, 400);
|
||||
|
||||
m_list_windows.SetExtendedStyle(LVS_EX_FLATSB | LVS_EX_FULLROWSELECT); //初始化 窗口管理的列表
|
||||
m_list_windows.InsertColumn(0, "PID", LVCFMT_LEFT, 50);
|
||||
m_list_windows.InsertColumn(1, "窗口名称", LVCFMT_LEFT, 300);
|
||||
|
||||
|
||||
AdjustList(); //各个列表的大小
|
||||
ShowProcessList(); //由于第一个发送来的消息后面紧跟着进程的数据所以把数据显示到列表当中
|
||||
ShowSelectWindow(); //显示列表
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// 异常: OCX 属性页应返回 FALSE
|
||||
}
|
||||
|
||||
|
||||
void CSystemDlg::ShowProcessList(void)
|
||||
{
|
||||
char *lpBuffer = (char *)(m_pContext->m_DeCompressionBuffer.GetBuffer(1));
|
||||
char *strExeFile;
|
||||
char *strProcessName;
|
||||
DWORD dwOffset = 0;
|
||||
CString str;
|
||||
m_list_process.DeleteAllItems();
|
||||
//遍历发送来的每一个字符别忘了他的数据结构啊 Id+进程名+0+完整名+0
|
||||
int i;
|
||||
for (i = 0; dwOffset < m_pContext->m_DeCompressionBuffer.GetBufferLen() - 1; i++)
|
||||
{
|
||||
LPDWORD lpPID = LPDWORD(lpBuffer + dwOffset); //这里得到进程ID
|
||||
strExeFile = lpBuffer + dwOffset + sizeof(DWORD); //进程名就是ID之后的啦
|
||||
strProcessName = strExeFile + lstrlen(strExeFile) + 1; //完整名就是进程名之后的啦
|
||||
//他的数据结构的构建很巧妙
|
||||
|
||||
m_list_process.InsertItem(i, strExeFile); //将得到的数据加入到列表当中
|
||||
str.Format("%5u", *lpPID);
|
||||
m_list_process.SetItemText(i, 1, str);
|
||||
m_list_process.SetItemText(i, 2, strProcessName);
|
||||
// ItemData 为进程ID
|
||||
m_list_process.SetItemData(i, *lpPID);
|
||||
|
||||
dwOffset += sizeof(DWORD) + lstrlen(strExeFile) + lstrlen(strProcessName) + 2; //跳过这个数据结构 进入下一个循环
|
||||
}
|
||||
|
||||
str.Format("程序路径 / %d", i);
|
||||
LVCOLUMN lvc;
|
||||
lvc.mask = LVCF_TEXT;
|
||||
lvc.pszText = str.GetBuffer(0);
|
||||
lvc.cchTextMax = str.GetLength();
|
||||
m_list_process.SetColumn(2, &lvc); //在列表中显示有多少个进程
|
||||
}
|
43
CcRemote/CcRemote/CSystemDlg.h
Normal file
43
CcRemote/CcRemote/CSystemDlg.h
Normal file
@@ -0,0 +1,43 @@
|
||||
#pragma once
|
||||
#include "include/IOCPServer.h"
|
||||
|
||||
// CSystemDlg 对话框
|
||||
|
||||
class CSystemDlg : public CDialog
|
||||
{
|
||||
DECLARE_DYNAMIC(CSystemDlg)
|
||||
|
||||
public:
|
||||
CSystemDlg(CWnd* pParent = NULL, CIOCPServer* pIOCPServer = NULL, ClientContext *pContext = NULL); // 标准构造函数
|
||||
virtual ~CSystemDlg();
|
||||
|
||||
// 对话框数据
|
||||
#ifdef AFX_DESIGN_TIME
|
||||
enum { IDD = IDD_SYSTEM };
|
||||
#endif
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
CTabCtrl m_tab;
|
||||
CListCtrl m_list_windows;
|
||||
CListCtrl m_list_process;
|
||||
private:
|
||||
HICON m_hIcon;
|
||||
ClientContext* m_pContext;
|
||||
CIOCPServer* m_iocpServer;
|
||||
|
||||
private:
|
||||
void AdjustList(void);
|
||||
void ShowSelectWindow(void);
|
||||
void GetProcessList(void);
|
||||
|
||||
public:
|
||||
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||||
afx_msg void OnClose();
|
||||
afx_msg void OnTcnSelchangeTab(NMHDR *pNMHDR, LRESULT *pResult);
|
||||
virtual BOOL OnInitDialog();
|
||||
void ShowProcessList(void);
|
||||
};
|
Binary file not shown.
@@ -206,6 +206,7 @@
|
||||
<ClInclude Include="CcRemoteDlg.h" />
|
||||
<ClInclude Include="CSettingDlg.h" />
|
||||
<ClInclude Include="CShellDlg.h" />
|
||||
<ClInclude Include="CSystemDlg.h" />
|
||||
<ClInclude Include="framework.h" />
|
||||
<ClInclude Include="include\Buffer.h" />
|
||||
<ClInclude Include="include\CpuUsage.h" />
|
||||
@@ -224,6 +225,7 @@
|
||||
<ClCompile Include="CcRemoteDlg.cpp" />
|
||||
<ClCompile Include="CSettingDlg.cpp" />
|
||||
<ClCompile Include="CShellDlg.cpp" />
|
||||
<ClCompile Include="CSystemDlg.cpp" />
|
||||
<ClCompile Include="include\Buffer.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
|
||||
@@ -257,6 +259,7 @@
|
||||
<ItemGroup>
|
||||
<Image Include="res\CcRemote.ico" />
|
||||
<Image Include="res\cmdshell.ico" />
|
||||
<Image Include="res\system.ico" />
|
||||
<Image Include="res\toolbar1.bmp" />
|
||||
<Image Include="res\ToolBar_Main.bmp" />
|
||||
</ItemGroup>
|
||||
|
@@ -72,6 +72,9 @@
|
||||
<ClInclude Include="CShellDlg.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="CSystemDlg.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="CcRemote.cpp">
|
||||
@@ -107,6 +110,9 @@
|
||||
<ClCompile Include="CShellDlg.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="CSystemDlg.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="CcRemote.rc">
|
||||
@@ -131,5 +137,8 @@
|
||||
<Image Include="res\cmdshell.ico">
|
||||
<Filter>资源文件</Filter>
|
||||
</Image>
|
||||
<Image Include="res\system.ico">
|
||||
<Filter>资源文件</Filter>
|
||||
</Image>
|
||||
</ItemGroup>
|
||||
</Project>
|
@@ -1,5 +1,3 @@
|
||||
g:\ccremote\ccremote\bin\ccremote.ipdb
|
||||
g:\ccremote\ccremote\bin\ccremote.iobj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.pch
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\vc141.pdb
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\pch.obj
|
||||
@@ -11,19 +9,6 @@ g:\ccremote\ccremote\ccremote\ccremote\release\cshelldlg.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\csettingdlg.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremotedlg.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\iocpserver.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\buffer.obj
|
||||
g:\ccremote\ccremote\bin\ccremote.exe
|
||||
g:\ccremote\ccremote\bin\ccremote.pdb
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.res
|
||||
g:\ccremote\ccremote\ccremote\ccremote\..\..\bin\ccremote.exe
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\ccremote.write.1u.tlog
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\cl.command.1.tlog
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\cl.read.1.tlog
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\cl.write.1.tlog
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\link.command.1.tlog
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\link.read.1.tlog
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\link.write.1.tlog
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\rc.command.1.tlog
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\rc.read.1.tlog
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.tlog\rc.write.1.tlog
|
||||
|
@@ -1,4 +1,6 @@
|
||||
G:\VS2017\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(377,5): warning MSB8004: Output 目录未以斜杠结尾。 此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
|
||||
pch.cpp
|
||||
CcRemote.cpp
|
||||
CcRemoteDlg.cpp
|
||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(159): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||
@@ -9,9 +11,31 @@ g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(322): warning C4244: “
|
||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(788): warning C4018: “<=”: 有符号/无符号不匹配
|
||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(867): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
CSettingDlg.cpp
|
||||
CShellDlg.cpp
|
||||
g:\ccremote\ccremote\ccremote\ccremote\cshelldlg.cpp(95): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
g:\ccremote\ccremote\ccremote\ccremote\cshelldlg.cpp(122): warning C4018: “<”: 有符号/无符号不匹配
|
||||
g:\ccremote\ccremote\ccremote\ccremote\cshelldlg.cpp(208): warning C4018: “<=”: 有符号/无符号不匹配
|
||||
g:\ccremote\ccremote\ccremote\ccremote\cshelldlg.cpp(218): warning C4018: “<”: 有符号/无符号不匹配
|
||||
CSystemDlg.cpp
|
||||
g:\ccremote\ccremote\ccremote\ccremote\csystemdlg.cpp(127): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
CpuUsage.cpp
|
||||
IniFile.cpp
|
||||
g:\ccremote\ccremote\ccremote\ccremote\inifile.cpp(33): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
|
||||
SEU_QQwry.cpp
|
||||
TrueColorToolBar.cpp
|
||||
Buffer.cpp
|
||||
IOCPServer.cpp
|
||||
g:\ccremote\ccremote\ccremote\ccremote\include\iocpserver.cpp(134): warning C4996: 'WSASocketA': Use WSASocketW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(3416): note: 参见“WSASocketA”的声明
|
||||
g:\ccremote\ccremote\ccremote\ccremote\include\iocpserver.cpp(719): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
g:\ccremote\ccremote\ccremote\ccremote\include\iocpserver.cpp(768): warning C4244: “初始化”: 从“double”转换到“unsigned long”,可能丢失数据
|
||||
g:\ccremote\ccremote\ccremote\ccremote\include\iocpserver.cpp(914): warning C4018: “>=”: 有符号/无符号不匹配
|
||||
正在生成代码
|
||||
1 of 459 functions ( 0.2%) were compiled, the rest were copied from previous compilation.
|
||||
0 functions were new in current compilation
|
||||
0 functions had inline decision re-evaluated but remain unchanged
|
||||
All 473 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
|
||||
已完成代码的生成
|
||||
CcRemote.vcxproj -> G:\CcRemote\CcRemote\CcRemote\CcRemote\..\..\bin\CcRemote.exe
|
||||
|
Binary file not shown.
@@ -13,6 +13,7 @@
|
||||
#include "framework.h"
|
||||
#include <afxcontrolbars.h>
|
||||
#include <afxwin.h>
|
||||
#include <afxwin.h>
|
||||
|
||||
#endif //PCH_H
|
||||
|
||||
|
BIN
CcRemote/CcRemote/res/system.ico
Normal file
BIN
CcRemote/CcRemote/res/system.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 766 B |
@@ -20,12 +20,18 @@
|
||||
#define IDD_SHELL 140
|
||||
#define IDI_ICON1 142
|
||||
#define IDI_CMDSHELL 142
|
||||
#define IDD_SYSTEM 143
|
||||
#define IDI_SYSTM 146
|
||||
#define IDI_SYSTEM 146
|
||||
#define IDC_ONLINE 1000
|
||||
#define IDC_LIST2 1001
|
||||
#define IDC_MESSAGE 1001
|
||||
#define IDC_EDIT_PORT 1002
|
||||
#define IDC_EDIT_MAX 1003
|
||||
#define IDC_EDIT 1003
|
||||
#define IDC_TAB 1004
|
||||
#define IDC_LIST_WINDOWS 1005
|
||||
#define IDC_LIST_PROCESS 1006
|
||||
#define ID_ONLINE_32771 32771
|
||||
#define ID_ONLINE_32772 32772
|
||||
#define ID_ONLINE_32773 32773
|
||||
@@ -76,9 +82,9 @@
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 143
|
||||
#define _APS_NEXT_RESOURCE_VALUE 147
|
||||
#define _APS_NEXT_COMMAND_VALUE 32817
|
||||
#define _APS_NEXT_CONTROL_VALUE 1004
|
||||
#define _APS_NEXT_CONTROL_VALUE 1006
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
|
BIN
bin/CcRemote.exe
BIN
bin/CcRemote.exe
Binary file not shown.
Reference in New Issue
Block a user