NN远程桌面SDK之C#开发源码
来源:互联网 发布:阿里云退款电话 编辑:程序博客网 时间:2024/05/21 03:20
NN远程控制软件可方便的用于查看远程屏幕,控制远程电脑。该系统由远程协助软件(NNHelp)和远程桌面服务(NNRdp)两部分组成。在无人值守电脑或服务器上安装远程桌面服务NNRdp,该软件随电脑开机自动运行,自动接受连接。在需要人工操作的电脑上安装NNHelp,可用于控制其他电脑(NNRdp服务)或邀请别人远程协助操作自己的电脑。具有常用客服功能,如:文字聊天,屏幕截图和邀请远程协助三大功能,客服远程电脑用得着哦。
官网下载:http://www.nnv1.com/screen.htm
系统特点:
- (1) 软件不需要注册,无需账号,自动分配ID号,并可随意更改自ID号;
- (2) 可设置屏幕质量:8位色,4位色,真彩色。适应不同的网络带宽要求;
- (3) 可发送文字消息,向客服发起远程协助请求,发送文字信息,或屏幕截图。
- (4) 分开使用更安全,NNHelp不自启动,不后台运行,不自动接受远程,被邀请者才可以远程。被控前需要你做权限确认(是否允许复制文件和文字)。NNRdp服务端在后台自动运行,只有自己允许的ID号才可以连接。
使用限制:NNhelp可免费使用,其远程控制功能提供SDK接口用于二次开发。通过二次开发接口,可以方便的给自己的软件产品增加远程控制(协助)功能。二次开发语言支持c++,VB,C#,Delphi,以及android手机平台,提供二次开发Demo及免费测试服务器(正式版服务器授权需要购买)。
C#开发源码:
NN远程控制组件提供简单的二次开发接口,可快速实现远程控制功能。支持各种语言二次开发。如:c++,VB,C#,Delphi,以及android手机平台。C#源码功能:
- 登陆服务器获取我的ID号(可选中固定ID登陆);
- 连接对方ID,控制远程机器(可直接链接或强制服务器中转链接);
- 设置远程屏幕颜色,是否去掉桌面背景和Aero主题。是否允许控制;
- 发送接收文字消息。断开当前链接。
C#代码中用到一下技术算法:、
- C#加载第三方Dll
- C#回调函数的使用。
- IntPtr转字符String。
C#加载第三方Dll:
首先声明dll文件名,dll一定要放在可执行程序所在目录,方便加载;然后声明函数名。
如:创建视频窗口,参数:父窗口;返回:创建的视频窗口。
[DllImport("NNScreen.dll")]
publicstaticextern Int32 NNSCreateWindow(IntPtrInt32Parent);
之后就可以在代码中使用dll导出的函数。
C#回调函数使用:
回调函数是一个在自己的程序中的实现的函数,该函数可以被Dll调用,比如NN远程控制组件在收到消息后要通知给C#程序,就通过调用这个回调函数来通知C#程序。首先声明一个回调函数名称,我这里命名为pDataRec,参数取决于dll中声明的回调接口。
public delegateInt32 pDataRec(UInt32userData,stringstrUser,IntPtr pdata, intilen,intidatatype);
声明dll中设置回调的函数接口(由Dll提供)
[DllImport("NNScreen.dll")]
public static externvoid NNSSetCallBack(pDataRec Callback,UInt32handle);
IntPtr转字符String:
Dll中可能向C#代码传输大量的字符数据,可以直接声明为string 类型,但是string类型默认是unicode编码类型,对于ansi编码类型中的汉字就不适合了,这时候可以通过Marshal.PtrToStringAnsi来转换。
如:string str=Marshal.PtrToStringAnsi(pBuf);
另外对于非汉字字符,也可以通过byte直接转换:
byte []bt=newbyte[nLen];
Marshal.Copy(pBuf,bt,0,nLen);
String str=bt[0].ToString();
软件界面截图:
登录后,输入对方ID,连接对方,连接成功后可看到对方桌面:
可选择自动接受远程或弹出确认框手动确认,如下图选择确认框:
安卓端远程控制电脑:
远程控制组件调用流程:
【受控端】
1、创建组件
参数:父窗口句柄;
返回:创建的组件窗口句柄。
public static extern Int32 NNSCreateWindow(IntPtr Int32Parent);
2、创建远程窗口
参数1:父窗口句柄
参数2:可忽略
返回:远程窗口句柄,可通过这个句柄通过SetWindowText设置窗口标题。
public static extern int NNSInitVideoDevice(IntPtr Int32Show,intnDevice);
3、设置消息回调函数
参数1:回调函数
参数2:用户自己设置数据。随意
public static extern void NNSSetCallBack (pDataRec CallbackFunction, UInt32 handle);
4、 回调函数处理:
参数1:用户自己设置数据。
参数2:对方用户ID
参数3:收到的对方数据,或状态字符
参数4:收到数据长度。-1表示当前登录或连接状态。
参数5:收到数据类型:10表示对方发的文字。255表示设置我的ID返回情况。
返回:请返回0
function nncallback2(userData:integer; strUser:Pointer; pBuf:Pointer; nLen:integer; nType:integer):integer; stdcall;
状态字符:(nLen=-1时 pBuf 对应的意思。
'登陆失败!'
'登录成功'
'连接成功!'
'停止!' (说明:表示断开远程来年姐。停止!后面可能还有文字说明具体原因。)
'连接失败'
'不在线'
其他自己根据文字内容去理解。具体细节参考Demo使用。
5、设置是否允许远程操作
参数:1(允许),0(不允许)
返回:设置后的值。
public static extern int NNSSetDevice(int nDevice);
6:删除组件,软件关闭时调用。
public static extern void NNSDestory();
【主控端】
前面5点与受控端一样,略...
7、设置远程屏幕颜色。
参数:颜色值:4,8,32
返回:设置后的值。
public static extern int NNSSetDevice(int nDevice);
8、发起连接
参数1:对方ID
阐述2:连接方式:0,不中转,1连接失败后才中转.2强制中转。
返回:1发送出去,0发送失败。
public static extern Int32 NNSConnectName(String strUser,Int32bUserServer);
9、断开连接:
参数:无
返回:无
void NNSStopChat();
10、发送文字给对方:
参数1:用户ID,发送给当前连接方,无需指定,用空字符代替。
参数2:要发送的字符串数据。
参数3:要发送的字节数。-1 表示就是当前字符串的长度。
参数4:数据类型,目前用10来代替文字。 255表示设置我的ID。
返回:1发送出去,0未发送出去。
public static extern int NNSSendData(String strUser,StringstrText, int nLen , byte nType);
完整源码下载地址:http://www.nnv1.com/Com_Screen.htm点击C#开发源码下载
- NN远程桌面SDK之C#开发源码
- NN远程桌面SDK之Delphi开发源码
- NN远程桌面SDK之VC++开发源码
- c#远程桌面开发
- SDK源码之组合模式
- tensorflow源码 tf.nn.softmax_cross_entropy_with_logits & tf.nn.sparse_softmax_cross_entropy_with_log
- 【pytorch源码赏析】nn.XX VS nn.functional.XX
- iOS SDk开发之二
- nn
- nn
- nn
- NN之---weight 反馈回路
- 深度学习之NN->CNN
- C#使用RDP远程桌面
- C# 管理远程桌面
- C#硬件开发源码集合
- 微信支付开发C# SDK JSAPI支付开发流程
- Vuforia SDK---- AR开发Vuforia sdk 4.0之物体识别
- 解决java.util.ConcurrentModificationException
- leetcode438. Find All Anagrams in a String
- HttpServletRequest和HttpServletResponse
- C语言中的一些关键字(一)
- 使用sqlite3_exec回掉函数输出查询内容
- NN远程桌面SDK之C#开发源码
- 半导体二极管及其应用(一)
- c++引用和指针的区别
- 10个技巧助您提高网站访问速度
- Python 基本语法笔记整理
- Oracle trace
- 半导体二极管及其应用(二)
- jquery serializeArray()、serialize()增加数据
- 接口测试基础