注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

BCB-DG's Blog

...

 
 
 

日志

 
 

DGSpy.dll SDK 0.5  

2011-11-28 22:49:18|  分类: VNC |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

更新内容:

1、增加屏幕录像接口函数;

2、增加TCP的P2P接口函数,TCP打洞实现P2P通信,当P2P失败时为中转通信,只是P2P的处理,需要其它通信配合使用;

3、捕获的参数设置改为控制端选择,如颜色数、透明窗口、移除桌面墙纸、禁用DirectDraw加速实现捕获视频、禁用AERO加快WIN7中的速度;

4、修正客户服务端之间的同步,录像的假死。

 

DGSpy.dll 接口与函数参数说明
============================================================================

版权所有:BCB-DG(112275024)
版本:    0.5
BLOG:  http://iamgyg.blog.163.com
EMail:  iamgyg@163.com

本DLL采用消息方式与主程序通信,故需要在主程序中自定义消息处理函数。

功能列表:
1、屏幕捕获与还原;
2、屏幕录像与播放(MPG格式与自定义格式);
3、屏幕监控正向TCP封装;
4、屏幕监控反向TCP封装;
5、TCP的P2P封装;
6、语音视频封装(下一版本)。

============================================================================

消息参数说明:

屏幕捕获
无事件,直接函数返回

----------------------------------------------------------------------------

屏幕还原
WParam: 事件(deSpyInfo, deSpyData, deSpyError)
LParam: 客户端实例

----------------------------------------------------------------------------

P2P连接(函数名后都加了P)
服务端:
WParam: 事件(deConnected, deDisconnected, deClosed)
LParam: 客户端实例

客户端:
WParam: 事件(deConnected, deConnError, deDisconnected, deWaited, deClosed, deP2PData)
LParam: 客户端实例

----------------------------------------------------------------------------

屏幕SPY录像
WParam: 事件(deSpyData, deDisconnected)
LParam: 录像实例

----------------------------------------------------------------------------

播放SPY录像
WParam: 事件(deSpyInfo, deSpyData, deSpyError)
LParam: 播放实例

----------------------------------------------------------------------------

正向连接(函数名后都加了T)
服务端:
WParam: 事件(deConnected, deDisconnected, deAccept, deUserData)
LParam: 客户端实例

客户端:
WParam: 事件(deConnected, deConnError, deDisconnected, deAccept, deUserData, deSpyInfo, deSpyData, deSpyError)
LParam: 客户端实例

----------------------------------------------------------------------------

反向连接(函数名后都加了I)
服务端:
WParam: 事件(deConnected, deDisconnected, deAccept, deUserData, deSpyInfo, deSpyData, deSpyError)
LParam: 客户端实例(使用这个实例进行操作)

客户端:
WParam: 事件(deConnected, deConnError, deDisconnected, deAccept, deUserData)
LParam: 客户端实例

============================================================================

导出函数:

procedure About; stdcall;
功能:关于,显示版本与信息
参数:无

procedure KeyCAD; stdcall;
功能:模拟Ctrl+Alt+Delete组合鍵,需要SYSTEM权限
参数:无

procedure WakeUp1(Mac1, Mac2, Mac3, Mac4, Mac5, Mac6: Byte); stdcall;
功能:内网广播远程唤醒
参数:远程电脑MAC地址1、2、3、4、5、6

procedure WakeUp2(pHost: PChar; Mac1, Mac2, Mac3, Mac4, Mac5, Mac6: Byte); stdcall;
功能:指定主机远程唤醒
参数:主机地址,远程电脑MAC地址1、2、3、4、5、6

procedure WakeUp3(pHost: PChar; nPort: Integer; Mac1, Mac2, Mac3, Mac4, Mac5, Mac6: Byte); stdcall;
功能:指定主机端口远程唤醒
参数:主机地址,主机端口,远程电脑MAC地址1、2、3、4、5、6

function SelectInputDesktop: BOOL; stdcall;
功能:切换到输入桌面,需要当前线程无界面控件
参数:无
返回:切换结果

function RemoveWall: BOOL; stdcall;
功能:移除桌面墙纸
参数:无
返回:结果

function DisableAero: BOOL; stdcall;
功能:禁用桌面AERO效果,需要VISTA以上系统,同时需要管理权限
参数:无
返回:结果

function EnableAero: BOOL; stdcall;
功能:启用桌面AERO效果,需要VISTA以上系统,同时需要管理权限
参数:无
返回:结果

----------------------------------------------------------------------------

屏幕录像

function StartRecordMpg(bAlpha: BOOL; pFile: PChar; nHwnd, nMsg: DWORD): DWORD; stdcall;
功能:屏幕录像MPG格式
参数:是否捕获透明窗口,保存的文件,消息句柄,消息值
返回:录像实例

function StartRecordSpy(bAlpha: BOOL; pFile: PChar; nHwnd, nMsg: DWORD): DWORD; stdcall;
功能:屏幕录像SPY格式
参数:是否捕获透明窗口,保存的文件,消息句柄,消息值
返回:录像实例

function StartRecordSpy2(PFmt: Byte; bAlpha: BOOL; pFile: PChar; nHwnd, nMsg: DWORD): DWORD; stdcall;
功能:屏幕录像SPY格式
参数:画面颜色数,是否捕获透明窗口,保存的文件,消息句柄,消息值
返回:录像实例

procedure StopRecord(pRec: DWORD); stdcall;
功能:停止屏幕录像
参数:StartRecord返回的录像实例

----------------------------------------------------------------------------

P2P连接(函数名后都加了P)
服务端:

function StartServerP(nPort: Integer; nHwnd, nMsg: DWORD): DWORD; stdcall;
功能:开始一个P2P服务端实例
参数:监听端口,消息句柄,消息值
返回:大于0为服务端实例,否则失败。

procedure StopServerP(pSvr: DWORD); stdcall;
功能:停止一个P2P服务端实例
参数:StartServerP返回的实例

function ClientCountP(pSvr: DWORD): Integer; stdcall;
功能:得到一个P2P服务实例的客户端数量
参数:StartServerP返回的实例

----------------------------------------------------------------------------

P2P连接(函数名后都加了P)
客户端:

function StartClientP2(pHost: PChar; nPort, nId: Integer; nHwnd, nMsg: DWORD): DWORD; stdcall;
功能:开始一个P2P客户端实例(接收方)
参数:远程地址,远程端口,对方ID,消息句柄,消息值
返回:大于0为客户端实例,否则失败。

function StartClientP(pHost: PChar; nPort: Integer; nHwnd, nMsg: DWORD): DWORD; stdcall;
功能:开始一个P2P客户端实例(发起方)
参数:远程地址,远程端口,消息句柄,消息值
返回:大于0为客户端实例,否则失败。

procedure StopClientP(pClt: DWORD); stdcall;
功能:停止一个P2P客户端实例
参数:StartClientP返回的实例

function GetClientIdP(pClt: DWORD): DWORD; stdcall;
功能:获取发起方P2P客户端实例的Id,用于给接收方打洞识别
参数:StartClientP返回的实例
返回:客户端实例的Id

function SendUserDataP(pClt: DWORD; pData: Pointer; nSize: Integer): BOOL; stdcall;
功能:发送数据
参数:StartClientP返回的实例,数据指针,数据大小
返回:发送结果

function GetUserDataP(pClt: DWORD; pData: PInteger): Integer; stdcall;
功能:读取接收的数据,需要在deSpyData消息中马上读取
参数:StartClientP返回的实例,DLL返回的数据缓冲区指针
返回:接收的数据量大小
注意:一定不要去修改pData中的数据

----------------------------------------------------------------------------

屏幕捕获

function StartSpy(PFmt: Byte; bAlpha: BOOL): DWORD; stdcall;
功能:开始一个捕获实例,程序结束时必须停止这个实例
参数:画面颜色数,是否捕获透明窗口
注意:实例是同步实例,运行在当前线程
返回:大于0为捕获实例,否则失败

procedure StopSpy(pSpy: DWORD); stdcall;
功能:停止一个捕获实例
参数:StartSpy返回的实例

procedure ResetSpy(pSpy: DWORD); stdcall;
功能:重置一个捕获实例
参数:StartSpy返回的实例

function GetSpyData(pSpy: DWORD; pData: PInteger): Integer; stdcall;
功能:捕获屏幕
参数:StartSpy返回的实例,DLL返回的数据缓冲区指针
注意:一定不要去修改pData中的数据
返回:捕获的数据量大小,0为无变化

----------------------------------------------------------------------------

屏幕还原

function StartShow(nHwnd, nMsg: DWORD): DWORD; stdcall;
功能:开始一个还原实例,程序结束时必须停止这个实例
参数:消息句柄,消息值
返回:大于0为还原实例,否则失败

procedure StopShow(pShow: DWORD); stdcall;
功能:停止一个还原实例
参数:StartShow返回的实例

function ShowSpy(pShow: DWORD; pData: Pointer; nSize: Integer): BOOL; stdcall;
功能:处理捕获的数据
参数:StartShow返回的实例,数据指针,GetSpy得到的数据大小
返回:是否处理成功,成功后可调用GetScrSize获取桌面参数、ShowScr1等函数显示

procedure GetScrSize(pShow: DWORD; pWidth, pHeight, pBits: PInteger); stdcall;
功能:deScrInfo消息后可以获取远程桌面的宽、高、定义的颜色数
参数:StartShow返回的实例,需要返回的宽、高、颜色数

procedure GetDataSize(pShow: DWORD; pFram, pRSize, pPSize: PInteger); stdcall;
功能:deScrData消息后可以获取的总共的帧数、当前帧的网络包大小与当前实际帧的数据大小
参数:StartShow返回的实例,需要返回的帧数、网络包大小、数据大小

function SaveBmp(pShow: DWORD; pFile: PChar): BOOL; stdcall;
功能:保存当前图片为BMP
参数:StartShow返回的实例,BMP路径
返回:保存成功或失败

function StartRecordMpgS(pShow: DWORD; pFile: PChar): BOOL; stdcall;
功能:开始录制MPG录像,必须在一帧以后,而且之前未录像才行
参数:StartShow返回的实例,MPG录像路径
返回:保存成功或失败

function StartRecordSpyS(pShow: DWORD; pFile: PChar): BOOL; stdcall;
功能:开始录制SPY录像,必须在一帧以后,而且之前未录像才行
参数:StartShow返回的实例,SPY录像路径
返回:保存成功或失败

procedure StopRecordS(pShow: DWORD); stdcall;
功能:停止录像
参数:StartShow返回的实例

procedure ShowScr1(pShow: DWORD; DC: HDC; bCursor: BOOL); stdcall;
功能:显示远程桌面图像(显示全部图像)
参数:StartShow返回的实例,要显示的DC,是否显示鼠标指针

procedure ShowScr2(pShow: DWORD; DC: HDC; nLeft, nTop, nWidth, nHeight: Integer; bCursor: BOOL); stdcall;
功能:显示远程桌面图像(只显示指定的区域)
参数:StartShow返回的实例,要显示的DC,左上角坐标,宽、高度,是否显示鼠标指针

procedure ShowScr3(pShow: DWORD; DC: HDC; nWidth, nHeight: Integer; bHalftone, bCursor: BOOL = False); stdcall;
功能:缩放显示远程桌面图像
参数:StartShow返回的实例,要显示的DC,宽、高度,是否过渡色彩,是否显示鼠标指针

procedure ShowScr4(pShow: DWORD; DC: HDC; nLeft, nTop, nWidth, nHeight: Integer; bHalftone, bCursor: BOOL = False); stdcall;
功能:缩放显示远程桌面图像(只显示指定的区域)
参数:StartShow返回的实例,要显示的DC,左上角坐标,宽、高度,是否过渡色彩,是否显示鼠标指针

----------------------------------------------------------------------------

播放SPY录像

function StartPlay(pFile: PChar; nHwnd, nMsg: DWORD): DWORD; stdcall;
功能:开始一个播放实例,程序结束时必须停止这个实例
参数:SPY录像文件,消息句柄,消息值
返回:大于0为还原实例,否则失败

procedure StopPlay(pPlay: DWORD); stdcall;
功能:停止一个播放实例
参数:StartPlay返回的实例

procedure PlayInfo(pPlay: DWORD; pFrame, pTimes: PInteger); stdcall;
功能:获取播放信息
参数:StartPlay返回的实例,总帧数,总秒数

procedure PlaySpy(pPlay, nSpeed: DWORD); stdcall;
功能:开始播放
参数:StartPlay返回的实例,播放速度(1-1000,100=原始速度)

procedure PlaySpeed(pPlay, nSpeed: DWORD); stdcall;
功能:设定播放速度
参数:StartPlay返回的实例,播放速度(1-1000,100=原始速度)

procedure PauseSpyP(pPlay: DWORD); stdcall;
功能:暂停播放
参数:StartPlay返回的实例

procedure GetScrSizeP(pPlay: DWORD; pWidth, pHeight, pBits: PInteger); stdcall;
功能:deScrInfo消息后可以获取远程桌面的宽、高、定义的颜色数
参数:StartClient返回的实例,需要返回的宽、高、颜色数

procedure GetDataSizeP(pPlay: DWORD; pFram, pRSize, pPSize: PInteger); stdcall;
功能:deScrData消息后可以获取的总共的帧数、当前帧的网络包大小与当前实际帧的数据大小
参数:StartClient返回的实例,需要返回的帧数、网络包大小、数据大小

function SaveBmpP(pPlay: DWORD; pFile: PChar): BOOL; stdcall;
功能:保存当前图片为BMP
参数:StartClient返回的实例,BMP路径
返回:保存成功或失败

procedure ShowScrP1(pPlay: DWORD; DC: HDC; bCursor: BOOL); stdcall;
功能:显示播放图像
参数:StartPlay返回的实例,要显示的DC,是否显示鼠标指针

procedure ShowScrP2(pPlay: DWORD; DC: HDC; nLeft, nTop, nWidth, nHeight: Integer; bCursor: BOOL); stdcall;
功能:显示播放图像(只显示指定的区域)
参数:StartPlay返回的实例,要显示的DC,左上角坐标,宽、高度,是否显示鼠标指针

procedure ShowScrP3(pPlay: DWORD; DC: HDC; nWidth, nHeight: Integer; bHalftone, bCursor: BOOL = False); stdcall;
功能:缩放显示播放图像
参数:StartPlay返回的实例,要显示的DC,宽、高度,是否过渡色彩,是否显示鼠标指针

procedure ShowScrP4(pPlay: DWORD; DC: HDC; nLeft, nTop, nWidth, nHeight: Integer; bHalftone, bCursor: BOOL = False); stdcall;
功能:缩放显示播放图像(只显示指定的区域)
参数:StartPlay返回的实例,要显示的DC,左上角坐标,宽、高度,是否过渡色彩,是否显示鼠标指针

----------------------------------------------------------------------------

屏幕正向连接(函数名后都加了T)
服务端:

function StartServerT(nPort: Integer; pPwd: PChar; nHwnd, nMsg: DWORD): DWORD; stdcall;
功能:开始一个服务端实例,程序结束时必须停止这个实例,否则可能会进程不退出
参数:监听端口,安全密码,消息句柄,消息值
返回:大于0为服务端实例,否则失败。

procedure StopServerT(pSvr: DWORD); stdcall;
功能:停止一个服务端实例
参数:StartServerT返回的实例

function ClientCountT(pSvr: DWORD): Integer; stdcall;
功能:得到一个服务实例的客户端数量
参数:StartServerT返回的实例

function SendClientDataT(pSvr, pClt: DWORD; pData: Pointer; nSize: Integer): BOOL; stdcall;
功能:发送用户数据
参数:服务端实例,客户端实例,数据指针,数据大小
返回:发送成功或失败

function GetClientDataT(pSvr, pClt: DWORD; pData: PInteger): Integer; stdcall;
功能:获取用户数据
参数:服务端实例,客户端实例,数据指针
返回:数据大小

procedure ClientInfoT(pClt: DWORD; pIP: PChar; pPort: PInteger); stdcall;
功能:得到一个客户端的远程IP地址和端口
参数:客户端实例,IP地址缓冲区,端口
注意:IP地址缓冲区的长度需要16字节以上,否则会溢出

procedure DisconClientT(pSvr, pClt: DWORD); stdcall;
功能:断开一个客户端
参数:StartServerT返回的实例,客户端实例

----------------------------------------------------------------------------

屏幕正向连接(函数名后都加了T)
客户端:

function StartClientT(pHost: PChar; nPort: Integer; pPwd: PChar; PFmt: Byte; bAlpha: BOOL; nHwnd, nMsg: DWORD): DWORD; stdcall;
功能:开始一个客户端实例,程序结束时必须停止这个实例
参数:远程地址,远程端口,安全密码,画面颜色数,是否捕获透明窗口,消息句柄,消息值
注意:连接为异步模式,返回客户端不代表连接成功,连接状态需要在消息中处理
返回:大于0为客户端实例,否则失败

function StartClientT2(pHost: PChar; nPort: Integer; pPwd: PChar; PFmt: Byte; bAlpha, bWall, bDDraw, bAero: BOOL; nHwnd, nMsg: DWORD): DWORD; stdcall;
功能:开始一个客户端实例,程序结束时必须停止这个实例
参数:远程地址,远程端口,安全密码,画面颜色数,是否捕获透明窗口,是否移除桌面墙纸,是否禁用DirectDraw加速,是否禁用AERO,消息句柄,消息值
注意:连接为异步模式,返回客户端不代表连接成功,连接状态需要在消息中处理
返回:大于0为客户端实例,否则失败

procedure StopClientT(pClt: DWORD); stdcall;
功能:停止一个客户端实例
参数:StartClient返回的实例

function RunSpyT(pClt: DWORD; PFmt: Byte; bAlpha: BOOL): BOOL; stdcall;
功能:捕获桌面
参数:StartClient返回的实例,画面颜色数,是否捕获透明窗口
返回:成功或失败

function RunSpyT2(pClt: DWORD; PFmt: Byte; bAlpha, bWall, bDDraw, bAero: BOOL): BOOL; stdcall;
功能:捕获桌面
参数:StartClient返回的实例,画面颜色数,是否捕获透明窗口,是否移除桌面墙纸,是否禁用DirectDraw加速,是否禁用AERO
返回:成功或失败

function PauseSpyT(pClt: DWORD): BOOL; stdcall;
功能:暂停捕获桌面
参数:StartClient返回的实例
返回:成功或失败

function SendUserDataT(pClt: DWORD; pData: Pointer; nSize: Integer): BOOL; stdcall;
功能:发送用户数据
参数:客户端实例,数据指针,数据大小
返回:发送成功或失败

function GetUserDataT(pClt: DWORD; pData: PInteger): Integer; stdcall;
功能:获取用户数据
参数:客户端实例,数据指针
返回:数据大小

procedure GetScrSizeT(pClt: DWORD; pWidth, pHeight, pBits: PInteger); stdcall;
功能:deScrInfo消息后可以获取远程桌面的宽、高、定义的颜色数
参数:StartClient返回的实例,需要返回的宽、高、颜色数

procedure GetDataSizeT(pClt: DWORD; pFram, pRSize, pPSize: PInteger); stdcall;
功能:deScrData消息后可以获取的总共的帧数、当前帧的网络包大小与当前实际帧的数据大小
参数:StartClient返回的实例,需要返回的帧数、网络包大小、数据大小

function SaveBmpT(pClt: DWORD; pFile: PChar): BOOL; stdcall;
功能:保存当前图片为BMP
参数:StartClient返回的实例,BMP路径
返回:保存成功或失败

function StartRecordMpgT(pClt: DWORD; pFile: PChar): BOOL; stdcall;
功能:开始录制MPG录像,必须在一帧以上后,而且之前未录像才行
参数:StartClient返回的实例,MPEG录像路径
返回:保存成功或失败

function StartRecordSpyT(pClt: DWORD; pFile: PChar): BOOL; stdcall;
功能:开始录制SPY录像,必须在一帧以上后,而且之前未录像才行
参数:StartClient返回的实例,SPY录像路径
返回:保存成功或失败

procedure StopRecordT(pClt: DWORD); stdcall;
功能:停止录制录像
参数:StartClient返回的实例

procedure ShowScrT1(pClt: DWORD; DC: HDC; bCursor: BOOL); stdcall;
功能:显示远程桌面图像(显示全部图像)
参数:StartClient返回的实例,要显示的DC,是否显示鼠标指针

procedure ShowScrT2(pClt: DWORD; DC: HDC; nLeft, nTop, nWidth, nHeight: Integer; bCursor: BOOL); stdcall;
功能:显示远程桌面图像(只显示指定的区域)
参数:StartClient返回的实例,要显示的DC,左上角坐标,宽、高度,是否显示鼠标指针

procedure ShowScrT3(pClt: DWORD; DC: HDC; nWidth, nHeight: Integer; bHalftone, bCursor: BOOL = False); stdcall;
功能:缩放显示远程桌面图像
参数:StartClient返回的实例,要显示的DC,宽、高度,是否过渡色彩,是否显示鼠标指针

procedure ShowScrT4(pClt: DWORD; DC: HDC; nLeft, nTop, nWidth, nHeight: Integer; bHalftone, bCursor: BOOL = False); stdcall;
功能:缩放显示远程桌面图像(只显示指定的区域)
参数:StartClient返回的实例,要显示的DC,左上角坐标,宽、高度,是否过渡色彩,是否显示鼠标指针

procedure CMouseT(pClt: DWORD; X, Y: Integer; nCtrl: Byte); stdcall;
功能:发送鼠标事件给远程桌面
参数:StartClient返回的实例,坐标,事件类型

procedure CKeyT(pClt: DWORD; Key: Word; nCtrl: Byte); stdcall;
功能:发送键盘事件给远程桌面
参数:StartClient返回的实例,键值,事件类型

procedure CCadT(pClt: DWORD); stdcall;
功能:发送Ctrl+Alt+Delete键盘事件给远程桌面,需要进程有服务权限
参数:StartClient返回的实例

----------------------------------------------------------------------------

屏幕反向连接(函数名后都加了I)
客户端:

function StartClientI(pHost: PChar; nPort: Integer; pPwd: PChar; nHwnd, nMsg: DWORD): DWORD; stdcall;
功能:开始一个客户端实例,程序结束时必须停止这个实例
参数:远程地址,远程端口,安全密码,消息句柄,消息值
注意:此密码为服务端到此客户端验证,连接为异步模式,返回客户端不代表连接成功,连接状态需要在消息中处理
返回:大于0为客户端实例,否则失败

procedure StopClientI(pClt: DWORD); stdcall;
功能:停止一个客户端实例
参数:StartClientI返回的实例

function SendUserDataI(pClt: DWORD; pData: Pointer; nSize: Integer): BOOL; stdcall;
功能:发送用户数据
参数:客户端实例,数据指针,数据大小
返回:发送成功或失败

function GetUserDataI(pClt: DWORD; pData: PInteger): Integer; stdcall;
功能:获取用户数据
参数:客户端实例,数据指针
返回:数据大小

----------------------------------------------------------------------------

屏幕反向连接(函数名后都加了I)
服务端:

function StartServerI(nPort: Integer; pPwd: PChar; nHwnd, nMsg: DWORD): DWORD; stdcall;
功能:开始一个服务端实例,程序结束时必须停止这个实例,否则可能会进程不退出
参数:监听端口,安全密码,消息句柄,消息值
注意:此密码为此服务端到连接回来的客户端验证
返回:大于0为服务端实例,否则失败。

procedure StopServerI(pSvr: DWORD); stdcall;
功能:停止一个服务端实例
参数:StartServerI返回的实例

function ClientCountI(pSvr: DWORD): Integer; stdcall;
功能:得到一个服务实例的客户端数量
参数:StartServerI返回的实例

procedure ClientInfoI(pClt: DWORD; pIP: PChar; pPort: PInteger); stdcall;
功能:得到一个客户端的远程IP地址和端口
参数:客户端实例,IP地址缓冲区,端口
注意:IP地址缓冲区的长度需要16字节以上,否则会溢出

procedure DisconClientI(pSvr, pClt: DWORD); stdcall;
功能:断开一个客户端
参数:StartServerI返回的实例,客户端实例

function RunSpyI(pSvr, pClt: DWORD; PFmt: Byte; bAlpha: BOOL): BOOL; stdcall;
功能:捕获桌面
参数:StartServerI返回的实例,连接的客户端,画面颜色数,是否捕获透明窗口
返回:成功或失败

function RunSpyI2(pSvr, pClt: DWORD; PFmt: Byte; bAlpha, bWall, bDDraw, bAero: BOOL): BOOL; stdcall;
功能:捕获桌面
参数:StartServerI返回的实例,连接的客户端,画面颜色数,是否捕获透明窗口,是否移除桌面墙纸,是否禁用DirectDraw加速,是否禁用AERO
返回:成功或失败

function PauseSpyI(pSvr, pClt: DWORD): BOOL; stdcall;
功能:暂停捕获桌面
参数:StartServerI返回的实例,连接的客户端
返回:成功或失败

function SendClientDataI(pSvr, pClt: DWORD; pData: Pointer; nSize: Integer): BOOL; stdcall;
功能:发送用户数据
参数:服务端实例,客户端实例,数据指针,数据大小
返回:发送成功或失败

function GetClientDataI(pSvr, pClt: DWORD; pData: PInteger): Integer; stdcall;
功能:获取用户数据
参数:服务端实例,客户端实例,数据指针
返回:数据大小

procedure GetScrSizeI(pClt: DWORD; pWidth, pHeight, pBits: PInteger); stdcall;
功能:deScrInfo消息后可以获取远程桌面的宽、高、定义的颜色数
参数:客户端实例,需要返回的宽、高、颜色数

procedure GetDataSizeI(pClt: DWORD; pFram, pRSize, pPSize: PInteger); stdcall;
功能:deScrData消息后可以获取的总共的帧数、当前帧的网络包大小与当前实际帧的数据大小
参数:客户端实例,需要返回的帧数、网络包大小、数据大小

function SaveBmpI(pClt: DWORD; pFile: PChar): BOOL; stdcall;
功能:保存当前图片为BMP
参数:客户端实例,BMP路径
返回:保存成功或失败

function StartRecordMpgI(pClt: DWORD; pFile: PChar): BOOL; stdcall;
功能:开始录制MPG录像,必须在一帧以上后,而且之前未录像才行
参数:客户端实例,MPG录像路径
返回:保存成功或失败

function StartRecordSpyI(pClt: DWORD; pFile: PChar): BOOL; stdcall;
功能:开始录制SPY录像,必须在一帧以上后,而且之前未录像才行
参数:客户端实例,SPY录像路径
返回:保存成功或失败

procedure StopRecordI(pClt: DWORD); stdcall;
功能:停止录制录像
参数:客户端实例

procedure ShowScrI1(pClt: DWORD; DC: HDC; bCursor: BOOL); stdcall;
功能:显示远程桌面图像(显示全部图像)
参数:客户端实例,要显示的DC,是否显示鼠标指针

procedure ShowScrI2(pClt: DWORD; DC: HDC; nLeft, nTop, nWidth, nHeight: Integer; bCursor: BOOL); stdcall;
功能:显示远程桌面图像(只显示指定的区域)
参数:客户端实例,要显示的DC,左上角坐标,宽、高度,是否显示鼠标指针

procedure ShowScrI3(pClt: DWORD; DC: HDC; nWidth, nHeight: Integer; bHalftone, bCursor: BOOL = False); stdcall;
功能:缩放显示远程桌面图像
参数:客户端实例,要显示的DC,宽、高度,是否过渡色彩,是否显示鼠标指针

procedure ShowScrI4(pClt: DWORD; DC: HDC; nLeft, nTop, nWidth, nHeight: Integer; bHalftone, bCursor: BOOL = False); stdcall;
功能:缩放显示远程桌面图像(只显示指定的区域)
参数:客户端实例,要显示的DC,左上角坐标,宽、高度,是否过渡色彩,是否显示鼠标指针

procedure CMouseI(pSvr, pClt: DWORD; X, Y: Integer; nCtrl: Byte); stdcall;
功能:发送鼠标事件给远程桌面
参数:客户端实例,坐标,事件类型

procedure CKeyI(pSvr, pClt: DWORD; Key: Word; nCtrl: Byte); stdcall;
功能:发送键盘事件给远程桌面
参数:客户端实例,键值,事件类型

procedure CCadI(pSvr, pClt: DWORD); stdcall;
功能:发送Ctrl+Alt+Delete键盘事件给远程桌面,需要进程有服务权限
参数:客户端实例

============================================================================

DEMO 代码说明

Delphi:
CSSpy\DServer.dpr   正向服务端
CSSpy\DClient.dpr   正向客户端

Service\DService.dpr 正向服务模式服务端

CSSpyI\DServerI.dpr  反向服务端
CSSpyI\DClientI.dpr  反向客户端

P2PSpy\DServerP.dpr   P2P服务端
P2PSpy\DClientS.dpr   P2P被控端
P2PSpy\DClientC.dpr   P2P控制端

RecPlay\DRecorder.dpr 屏幕录像
RecPlay\DPlayer.dpr   播放录像

----------------------------------------------------------------------------
VB6:
CSSpy\BServer.vbp   正向服务端
CSSpy\BClient.vbp   正向客户端

CSSpyI\BClientI.vbp   反向客户端

P2PSpy\BServerP.dpr   P2P服务端

============================================================================

提醒:因为本DLL进行了加密压缩,所以部分杀软会警告,请自行决定使用。

  评论这张
 
阅读(2124)| 评论(2)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017