向日葵SDK文档
贝锐 | 2020-09-24
概述
SLAPI是贝锐有限公司开发的一套基于产品向日葵的开发库,该库可以实现以点对点为通讯方式的远程桌面、远程文件、远程开机以及用户自定义的远程数据通讯。使用该开发库时,开发者无须关心点到点之间的通讯细节,以及通讯方式。SLAPI会以P2P或服务器中转等方式为通讯提供可靠的数据传输服务。
拥有帐户后,进入http://open.oray.com(开放平台的网址),进入开发者认证页面,填写必要资料并提交开发者申请。如图:
注册后,进入我的应用页面创建应用,创建成功后,在应用详情中看到自己的APP
ID 和 APP KEY,有了这两个信息,就可以使用SLAPI来开发自己的应用了。如图:
支持平台
目前SLAPI支持Window,Linux,Mac系列平台,而其他系统平台也将会尽快推出。
支持语言
目前SLAPI以纯C加二进制库实现方式提供接口,只要你的开发环境可以调用C函数即可。
主控与被控是两个大的对象,在它们内部维护了很多会话,这些会话可以动态的创建与销毁,每个会话都有各自特殊的功能,如图:Desktop会话可以实现主控与被控之间的远程桌面,File会话可以实现远程文件功能。
“你的服务器”用来传递被控端的连接信息与会话信息,让主控制端可以与被控制端进行通讯。
而“OrayServer”则默默的在背后为你的应用程序提供必要的通讯服务,保证你应用的数据传输。
目录结构
在开发库下你可以看到以下目录include、lib、bin、doc、samples。
include目录:所有SLAPI使用的API头文件,目前只有slsdk.h文件,用户只需要包含该文件即可使用SLAPI所有功能
bin目录:放有SLAPI运行时库,Windows下为slsdk.dll文件,运行时请将它放到运行程序所在的目录。放有SLAPI编译所需要的链接库,Windows下为slsdk.lib,编译时请链接该库
doc目录:所有SLAPI的使用说明与相关文档
使用开发库分为三个阶段,1:环境初始化,2:创建主/被控制端,3:创建会话。
另外在整个生命期中,可以使用SLGetLastError函数来获取当前的错误代码,方便你调试自己的应用程序,也可以使用SLSetLastError函数来设置当前的错误代码。最后,可以使用SLGetErrorDesc函数将错误代码转化为文本信息,方便查看。
使用SLClientLogin函数来登录到贝锐服务器,登录成功后利用SLGetClientAddress函数来获取被控制端的连接信息,使用此信息主控端就可以与被控制端通讯了。注意:当回调事件为SLCLIENT_EVENT_ONLOGIN时,才算登录成功。
当不再使用这个被控制端时,可以使用SLDestroyClient函数将其销毁。
使用SLDestroyRemote函数销毁主控制端
被控制端创建的所有会话都有一个会话序列号(字符串形式),使用该序列号,主控制端就可以连接指定会话了,这个序列号可以使用SLGetSessionName函数来获取。
最后所有的会话在API中都定义为SLSESSION类型,主控制端也是如此。
注意:被控端会话只能使用一次,一旦被主控端连接该会话后就失效,不能再连接。请销毁后再创建新的使用。被控端会话可以同时创建多个
主控制端创建会话与被控制端创建会话略有不同,它需要提供被控制端的连接信息和会话序列号信息,这两个信息可以使用上面所提到的SLGetClientAddress函数和SLGetSessionName函数来获取。
快速集成
集成的大致流程如下图所示。如果远程只是软件产品的一小部分,可直接在发起远程的时候顺序调用上述API,而不必在程序初始化阶段就调用登录的API(这样做相当于是与服务器保持长连接,Demo示例为此模式),建议是在需要远程的时候登录,断开远程的时候销毁。
WEB 服务
当开启了web服务后,可以用websocket连接进来控制或获取被控端的状态。
例子:
{
“id” : 1, //包id
“name” : “newsession” //方法名,newsession为创建一个新的远程会话
“type” : type //会话类型
}
如果调用的方法有附带参数,要把参数放在data字段下。
例子:
{
“id” : 2, //包id
“name” : “destroysession”, //方法名,destroysession为销毁会话
“data” : {
“sessionid” : 1 //销毁sessionid等于1的会话
}
}
服务端收到请求数据后,返回请求的id、name以及处理结果code,code等于0表示成功,其他值参考SLGetLastError的返回值
例子:
{
“id” : 1, //包id
“name” : “newsession”, //方法名,newsession为创建一个新的远程桌面会话
“code” : 0, //操作结果,0表示成功
“data” : {
“sessionid” : 0 //sessionid
“address” : “xxxxxx” //服务器地址
“sessionname” : “xxxxxx” //session
}
}
客户端接收到返回值后,应该判断id是否为发出请求的id,确保正确的收到返回结果。
下表1-7为web的请求方式及返回说明,8为服务器主动通知事件,9为会话回调通知。
1.OPENID登录
name: ”login_openid”
参数:
openid:开发者的ID号
openkey:开发者ID对应的验证码
例子:
{
“id” : 1,
“name” : “login_openid”,
“data” : {
“openid” : “xxxxxx”,
“openkey” : “xxxxxx”
}
}
返回:
{
“id” : 1,
“name” : “login\_openid”,
“data” : “”,
“code” : 0 //参考10.错误代码
}
2.License登录
name: ”login\_license”
参数:
address:服务器地址
license:服务器license
例子:
{
“id” : 1,
“name” : “login\_license”,
“data” : {
“address” : “xxxxxx”,
“license” : “xxxxxx”
}
}
返回:
{
“id” : 1,
“name” : “login\_license”,
“data” : “”,
“code” : 0 //参考10.错误代码
}
3.注销
name: ”logout”
例子:
{
“id” : 2,
“name” : “logout”,
}
返回:
{
“id” : 2,
“name” : “logout”,
“code” : 0 //参考10.错误代码
}
4.创建远程桌面会话
name: ”newsession”
例子:
{
“id” : 3,
“name” : “newsession”
“type” :0
}
返回:
{
“id” : 3,
“name” : “newsession”,
“code” : 0, //参考10.错误代码
“data” : {
“address” : “xxxxxx”,
“sessionid” : 0,
“sessionname” : “xxxxxx”
}
}
5.销毁会话
name: ”destroysession”
参数:
sessionid: 要销毁的sessionid
例子:
{
“id” : 4,
“name” : “destroysession”,
“data” : {
“sessionid” : 1
}
}
返回:
{
“id” : 4,
“name” : “destroysession”,
“data” : “”,
“code” : 0 //参考10.错误代码
}
6.开启远程桌面
name: ”assist”
参数:
address: 地址
session:会话
例子:
{
“id” : 5,
“name” : “assist”,
“data” : {
“address” : “xxxxxx”,
“session” : ”xxxxxx”
}
}
返回:
{
“id” : 5,
“name” : “assist”,
“data” : “”,
“code” : 0 //参考10.错误代码
}
7.获取当前状态
name: ”get_status”
例子:
{
“id” : 6,
“name” : “get\_status”,
}
返回:
{
“id” : 6,
“name” : “get\_status”,
“code” : 0, //参考10.错误代码
“data” : {
“is\_logginned” : true,
“session” : [
{
“addr” : “xxxxxx”,
“connected” : true,
“name” : “xxxxxx”,
“sessionid” : 0
}
{ .... }
...
{ ... }
] //session集合
}
}
8.事件通知
事件通知是服务端主动推送的,为了防止id重复,所以json包是不带id字段的
name: ”event”
参数:
evnet: 事件ID
例子:
{
“name” : “evnet”,
“data” : {
“evnet” : 1 //参考11.被控端事件代码
}
}
注:登录会触发连接,登录成功(or失败)事件,注销会触发断开连接事件。
9.会话回调通知
当创建一个会话后,会建立一个关于此会话的回调接口,当此会话状态发生变化时,会触发此回调事件。
name: ”sessionevt”
参数:
evt: 事件ID
id: 会话ID
例子:
{
“name” : “sessionevt”,
“data” : {
“evnet” : 1, //参考12.会话事件代码
“id” : 0 //会话ID
}
}
注:assist会触发其连接事件,destory和手动关闭会触发其断开连接事件。
提示:
SlWebServerSend方法可以想web客户端发送数据。
过滤方法里返回true,代表已经处理了该数据,底层将不会再处理
功能:初始化正个SLAPI环境
返回:是否初始化成功
说明:在调用所有其他任何API之前调用,总之是应用程序中第一个调用的API
功能:退出并析构整个SLAPI环境
返回:是否成功
说明:程序退出前调用,总之是应用程序中最后一个调用的API
功能:获取最后的错误码
返回:返回SLERRCODE错误码
说明:除了SLInitialize函数之外,任何API函数返回错误时,都可以用该API来获取失败的原因。该错误码是基于TLS的,线程上保持安全。
功能:设置最后的错误码
返回:是否设置成功
说明:通常情况下用户不需要使用该API来设置错误码。
功能:获取错误码详细说明
返回:详细信息,如果错误码不存在则返回“未知错误”
功能:创建一个被控制端环境
返回:返回被控制端环境值,如果创建失败则返回SLCLIENT_INVAILD
说明:返回值将用于后面很多的被控制端API函数中
功能:销毁一个被控制端环境
参数:client 由SLCreateClient创建出来的值
返回:是否销毁成功
说明:参数必须是由SLCreateClient函数创建出来的值,否则可能产生未定义后果
功能:开启web监听服务,用户可以用websocket连接进来控制或查看状态
参数:
client 由SLCreateClient创建出来的被控制端环境
nPort 要监听的端口号,默认是17801
返回:如果创建失败则返回false
说明:web监听服务的协议参考
功能:关闭web监听服务
参数:
client 由SLCreateClient创建出来的被控制端环境
返回:如果失败则返回false
功能:关闭web监听服务
参数:
client 被控制端环境
filter 函数指针
返回:如果失败则返回false
功能:向web客户端发送数据
参数:
client 被控制端环境
data 指向数据的指针
size 数据长度
返回:如果失败则返回false
功能:设置被控制端事件回调函数
参数:
client 由SLCreateClient创建出来的被控制端环境
pfnCallback 回调函数,当被控制端发生事件时,会通过该函数回调
cusom 用户自定义参数,回调时内部程序会将此参数一并回调
返回:是否设置成功
功能:被控制端登录服务器
参数:
client 由SLCreateClient创建出来的被控制端环境
pstrOpenID 开发者的ID号
pstrOpenKey 开发者ID对应的验证码
pstrDomain OpenID登陆验证所指定的服务器的域名(可以默认)
bUseSSL 配合pstrDomain使用,是否使用SSL
返回:是否登录出错,登录错出会返回false,但返回true不代码登录成功,如果想知道登录成功,必须通过回调SLCLIENT_EVENT_ONLOGIN事件得知
说明:开发者ID和验证码获取方式可参见本文“开发者账号”段落
功能:被控制端登录服务器
参数:
client 由SLCreateClient创建出来的被控制端环境
szAddr 服务器地址
szLic 服务器lincese
返回:是否登录出错,登录错出会返回false,但返回true不代码登录成功,如果想知道登录成功,必须通过回调SLCLIENT_EVENT_ONLOGIN事件得知
说明:该方法是提供给购买了定制服务器的用户使用的
功能:被控制端是否已经登录服务器
参数:
client 由SLCreateClient创建出来的被控制端环境
返回:是否已经登录服务器
功能:在被控制端环境中创建一个远程会话
参数:
client 由SLCreateClient创建出来的被控制端环境
eType 会话类型
返回:会话,如果失败则返回SLSESSION_INVAILD
功能:销毁一个会话
参数:
client 由SLCreateClient创建出来的被控制端环境
session 会话
返回:是否销毁成功
说明:session必须是由SLCreateClient***Session函数创建出来的Session值,不然可能产生未定义后果
功能:销毁一个会话
参数:
client 由SLCreateClient创建出来的被控制端环境
pSessionArray 会话数组用于返回数据
nArraySize 会话数组长度,一般填256
返回:返回了多少个会话
说明:session必须是由SLCreateClient***Session函数创建出来的Session值,不然可能产生未定义后果
功能:获取被控制端连接地址
参数:client 由SLCreateClient创建出来的被控制端环境
返回:地址
说明:必须在收到SLCLIENT_EVENT_ONLOGIN事件后,即使用开发者账号登录成功后才能调用本API,不然返回的值将是无效值。将该返回值告诉主控端,主控端就可以和该被控制端通讯了
功能:获取被控制端某个会话的值
参数:
client 由SLCreateClient创建出来的被控制端环境
session 会话
返回:会话值
说明:通过该值主控制端才能使用该会话的服务
功能:会话发送数据
参数:
client 由SLCreateClient创建出来的被控制端环境
session 会话
lpData 发送的数据
nLen 发送的数据长度
返回:实际发送的字节数,返回0表示出错
说明:目前只适用于DataTrans类型的会话
功能:会话接收数据
参数:
client 由SLCreateClient创建出来的被控制端环境
session 会话
lpData 接收数据
nLen 准备接收的数据长度
返回:实际收到的字节数,返回0表示出错
说明:目前只适用于DataTrans类型的会话
功能:获取被控制端某个会话某个属性值
参数:
client 由SLCreateClient创建出来的被控制端环境
session 会话
eOpt 属性名
pOptVal 属性值
nOptLen 属性值长度
返回:是否获取成功
功能:设置被控制端某个会话某个属性值
参数:
client 由SLCreateClient创建出来的被控制端环境
session 会话
eOpt 属性名
pOptVal 属性值
nOptLen 属性值长度
返回:是否设置成功
功能:创建一个控制端环境
返回:返回被控制端环境值,如果创建失败则返回SLREMOTE_INVAILD
说明:返回值将用于后面很多的主控制端API函数中
功能:销毁一个控制端环境
参数:remote 由SLCreateRemote创建出来的主控制端环境
返回:是否销毁成功
说明:参数必须是由SLCreateRemote函数创建出来的值,否则可能产生未定义后果
功能:设置主控制端事件回调函数
参数:
remote 由SLCreateRemote创建出来的主控制端环境
pfnCallback 回调函数,当被控制端发生事件时,会通过该函数回调
cusom 用户自定义参数,回调时内部程序会将此参数一并回调
返回:是否设置成功
功能:创建远程会话
参数:
remote 由SLCreateRemote创建出来的主控制端环境
eType 会话类型
pstrAddress 远程被控制端地址,由SLGetClientAddress函数返回的值
pstrSession 远程桌面会话名,由SLGetSessionName函数返回的值
返回:会话,如果失败则返回SLSESSION_INVALD
功能:创建远程空会话
参数:
remote 由SLCreateRemote创建出来的主控制端环境
eType 会话类型
返回:会话,如果失败则返回SLSESSION_INVALD
说明:和SLCreateRemoteSession不同的是创建一个空会话,不进行连接,后面必须再使用SLConnectRemoteSession来连接会话
功能:连接远程空会话
参数:
remote 由SLCreateRemote创建出来的主控制端环境
pstrAddress 远程被控制端地址,由SLGetClientAddress函数返回的值
pstrSession 远程桌面会话名,由SLGetSessionName函数返回的值
返回:会话,如果失败则返回SLSESSION_INVALD
说明:只用于SLCreateRemoteEmptySession创建出来的会话
功能:销毁一个会话
参数:
remote 由SLCreateRemote创建出来的主控制端环境
session 由SLCreateRemote***Session创建出来的会话值
返回:是否销毁成功
说明:session必须是由SLCreateRemote***Session函数创建出来的Session值,不然可能产生未定义后果
功能:会话中发送数据,另一端会话会收到数据
参数:
remote 由SLCreateRemote创建出来的主控制端环境
session 会话
lpData 发送的数据
nLen 发送的数据长度
返回:实际发送的字节数
说明:目前只适用于DataTrans类型的会话
功能:会话接收数据
参数:
remote由SLCreateRemote创建出来的主控制端环境
session 会话
lpData 接收数据
nLen 准备接收的数据长度
返回:实际收到的字节数,返回0表示出错
说明:目前只适用于DataTrans类型的会话
功能:获取主控制端某个会话某个属性值
参数:
client 由SLCreateRemote创建出来的主控制端环境
session 会话
eOpt 属性名
pOptVal 属性值
nOptLen 属性值长度
返回:是否获取成功
功能:设置主控制端某个会话某个属性值
参数:
remote由SLCreateRemote创建出来的主控制端环境
session 会话
eOpt 属性名
pOptVal 属性值
nOptLen 属性值长度
返回:是否设置成功
功能:设置远程桌面窗口的大小
参数:
remote 由SLCreateRemote创建出来的主控制端环境
session 会话
x x坐标
y y坐标
width宽度
height高度
返回:是否设置成功
功能:设置被控端代理
参数:
client 由SLCreateClient创建出来的被控制端环境
proxy代理信息
返回:是否设置成功
功能:设置被控端代理
参数:
remote由SLCreateRemote创建出来的主控制端环境
proxy代理信息
返回:是否设置成功
功能:设置显示远程桌面
参数:
remote由SLCreateRemote创建出来的主控制端环境
session 会话
返回:是否设置成功
功能:获取远程桌面原图大小
参数:
remote由SLCreateRemote创建出来的主控制端环境
session 会话
width 桌面原图宽度
height 桌面原图高度
返回:是否设置成功
功能:功能同SLClientLoginWithOpenID, 简化名称
参数:
client 由SLCreateClient创建出来的被控制端环境
pstrOpenID 开发者的ID号
pstrOpenKey 开发者ID对应的验证码
pstrDomain OpenID登陆验证所指定的服务器的域名(可以默认)
bUseSSL 配合pstrDomain使用,是否使用SSL
返回:是否设置成功
功能:发送一个文件
参数:
client 由SLCreateClient创建出来的被控制端环境
session 会话
filepath 发送文件的路径
resume 是否断点续传,否则重新发送文件
返回:文件id, 0代表失败
功能:取消发送文件
参数:
client 由SLCreateClient创建出来的被控制端环境
session 会话
fid 文件id
返回:是否成功
功能:获取文件路径名称
参数:
client 由SLCreateClient创建出来的被控制端环境
session 会话
fid 文件id
返回:文件路径名称
功能:获取传输的文件大小
参数:
client 由SLCreateClient创建出来的被控制端环境
session 会话
fid 文件id
返回:文件大小
功能:获取文件已传输的大小
参数:
client 由SLCreateClient创建出来的被控制端环境
session 会话
fid 文件id
返回:文件已传输的大小
功能:文件是否正在传输中
参数:
client 由SLCreateClient创建出来的被控制端环境
session 会话
fid 文件id
返回:true 正在传输,false 其他状态
功能:文件传输是否完成
参数:
client 由SLCreateClient创建出来的被控制端环境
session 会话
fid 文件id
返回:true 传输完成 false 其他状态
功能:文件是否被取消传输
参数:
client 由SLCreateClient创建出来的被控制端环境
session 会话
fid 文件id
返回:true 传输被取消 false 其他状态
功能:发送一个文件
参数:
remote由SLCreateRemote创建出来的主控制端环境
session 会话
filepath 发送文件的路径
resume 是否断点续传,否则重新发送文件
返回:文件id, 0代表失败
功能:取消发送文件
参数:
remote由SLCreateRemote创建出来的主控制端环境
session 会话
fid 文件id
返回:是否成功
功能:获取文件路径名称
参数:
remote由SLCreateRemote创建出来的主控制端环境
session 会话
fid 文件id
返回:文件路径名称
功能:获取传输的文件大小
参数:
remote由SLCreateRemote创建出来的主控制端环境
session 会话
fid 文件id
返回:文件大小
功能:获取文件已传输的大小
参数:
remote由SLCreateRemote创建出来的主控制端环境
session 会话
fid 文件id
返回:文件已传输的大小
功能:文件是否正在传输中
参数:
remote由SLCreateRemote创建出来的主控制端环境
session 会话
fid 文件id
返回:true 正在传输,false 其他状态
功能:文件传输是否完成
参数:
remote由SLCreateRemote创建出来的主控制端环境
session 会话
fid 文件id
返回:true 传输完成 false 其他状态
功能:文件是否被取消传输
参数:
remote由SLCreateRemote创建出来的主控制端环境
session 会话
fid 文件id
返回:true 传输被取消 false 其他状态
功能:根据应用(UI,Service)场景创建向日葵客户端
参数:
mode - 应用场景
返回:返回被控制端环境值,如果创建失败则返回SLCLIENT_INVAILD
功能:启用被控制端的日志输出
参数:
client 由SLCreateClient创建出来的被控制端环境
path 日志的输出路径
返回:是否设置成功
功能:启用主控制端的日志输出
参数:
remote由SLCreateRemote创建出来的主控制端环境
path 日志的输出路径
返回:是否设置成功
功能:设置远程CMD窗口的大小
参数:
remote 由SLCreateRemote创建出来的主控制端环境
session 会话
x x坐标
y y坐标
width宽度
height高度
返回:是否设置成功
功能:设置远程摄像头窗口的大小
参数:
remote 由SLCreateRemote创建出来的主控制端环境
session 会话
x x坐标
y y坐标
width宽度
height高度
返回:是否设置成功
功能:打开一个远程摄像头设备
参数:
remote 由SLCreateRemote创建出来的主控制端环境
session 会话
dev_id 摄像头的唯一标识,由SLRemoteCameraGetList函数获取
返回:是否打开成功
功能:关闭当前正在使用的远程摄像头设备
参数:
remote 由SLCreateRemote创建出来的主控制端环境
session 会话
返回:是否关闭成功
功能:设置当前摄像头的清晰度
参数:
remote 由SLCreateRemote创建出来的主控制端环境
session 会话
eVD ESLVideoDefinition枚举值,主要有标清,高清,超清
返回:是否设置成功
功能:获取远程摄像头列表并返回摄像头个数,当infos为空时,此函数仅返回摄像头个数
参数:
remote 由SLCreateRemote创建出来的主控制端环境
session 会话
infos CAMERA_INFO结构体数组,用于保存摄像头列表
nSize 结构体数组大小
返回:返回摄像头设备个数
功能:扫描局域网内的开机棒设备,并通过SLCLIENT_WOI_CALLBACK回调返回设备的SN号
参数:
client 由SLCreateClient创建出来的被控制端环境
返回:发送扫描请求成功或失败
功能:绑定局域网内的开机棒设备,并通过SLCLIENT_WOI_CALLBACK回调返回绑定结果
参数:
client 由SLCreateClient创建出来的被控制端环境
pstrSN 要绑定的开机棒的SN号
pstrMac 要绑定开机的MAC地址(AABBCCDDEEFF)
pstrPassword 远程开机密码,与MAC地址一起唤醒设备
返回:发送绑定设备请求成功或失败
功能:解绑局域网内的开机棒设备,并通过SLCLIENT_WOI_CALLBACK回调返回解绑结果
参数:
client 由SLCreateClient创建出来的被控制端环境
pstrSN 要解绑的开机棒的SN号
pstrMac 要绑定开机的MAC地址(AABBCCDDEEFF)
pstrPassword 远程开机密码,与MAC地址一起解绑设备
返回:发送解绑设备请求成功或失败
功能:设置远程开机棒事件回调,包括发现,绑定和解绑
参数:
client 由SLCreateClient创建出来的被控制端环境
pfnCallback 回调函数,当操作开机棒发生事件时,会通过该函数回调
cusom 用户自定义参数,回调时内部程序会将此参数一并回调
返回:设置回调成功或失败
功能:设置远程开机服务器的ip和控制端口
参数:
remote 由SLCreateRemote创建出来的主控制端环境
pstrAddress 远程开机服务器的IP地址
nPort 远程开机服务器的web控制端口
返回:设置成功或失败
功能:发送远程唤醒指令
参数:
remote 由SLCreateRemote创建出来的主控制端环境
pstrMac 待唤醒设备的Mac地址(AABBCCDDEEFF)
pstrPassword 远程开机密码,与MAC地址一起唤醒设备
返回:发送唤醒成功或失败
功能:设置远程开机事件回调
参数:
remote 由SLCreateRemote创建出来的主控制端环境
pfnCallback 回调函数,当远程开机指令响应时,会通过该函数回调
cusom 用户自定义参数,回调时内部程序会将此参数一并回调
返回:设置回调成功或失败
功能:获取远程客户端的系统信息
参数:
remote 由SLCreateRemote创建出来的主控制端环境
session 会话
pstrQuery 查询字符串\<参见13>
pstrContent 查询内容\<参见13>
返回:当前操作的执行的编号(自1开始递增)
功能:根据枚举值隐藏远程桌面工具栏上的对应模块
参数:
remote 由SLCreateRemote创建出来的主控制端环境
session 主控端桌面会话
eType 远程桌面工具栏上各控制模块的枚举值[SLDesktopControlType]
返回:是否设置成功
功能:获取远程桌面屏幕,会话,分辨率的信息列表并返回相应模块的个数,当infos为空时,此函数仅返回模块个数
参数:
remote 由SLCreateRemote创建出来的主控制端环境
session 主控端桌面会话
eType 远程桌面中各信息模块的枚举值[SLDesktopDevType]
infos SLBASE_INFO结构体数组,用于保存基本信息列表
nSize 结构体数组大小
返回:返回模块个数
功能:发送远程桌面控制命令
参数:
remote 由SLCreateRemote创建出来的主控制端环境
session 主控端桌面会话
eType 远程桌面中各命令模块的枚举值[SLDesktopCommandType]
nIndex 索引值,只针对于切换屏幕,切换会话,切换分辨率等选择性的命令有效
返回:是否执行成功
功能:得到枚举的模块的当前状态值
参数:
remote 由SLCreateRemote创建出来的主控制端环境
session 主控端桌面会话
eType 远程桌面中各状态模块的枚举值[SLDesktopStateType]
nState [in]状态值,保存状态模块的当前状态值或索引值
返回:是否执行成功
功能:截取一张远程桌面图像并保存
参数:
remote 由SLCreateRemote创建出来的主控制端环境
session 主控端桌面会话
filepath 截屏文件的绝对路径(包含文件名)
返回:是否截屏成功
功能:远程桌面时,开启录像功能开始录像
参数:
remote由SLCreateRemote创建出来的主控制端环境
session 主控端桌面会话
filepath 保存的录屏文件的全路径,包含文件名(后缀一般为.ts)
返回:是否开启录像成功
功能:远程桌面时,停止当前录像
参数:
remote由SLCreateRemote创建出来的主控制端环境
session 主控端桌面会话
返回:无
功能:远程桌面时手动设置被控制端的平台信息,主要用于在主控端显示不同样式的控制菜单
参数:
remote由SLCreateRemote创建出来的主控制端环境
session 主控端桌面会话
eType被控端平台枚举值[SLPlatformType]
返回:是否设置成功
功能:被控端主动发起聊天,弹出聊天窗口
参数:
client由SLCreateClient创建出来的被控制端环境
session 被控端桌面会话
bShow 是否显示窗口。如果为true,则为初始化创建窗口(仅针对Mac OSX有效)
返回:是否发起成功
功能:被控端切换控制/观看模式
参数:
client由SLCreateClient创建出来的被控制端环境
session 被控端桌面会话
bEnable是否为控制模式
返回:是否切换成功
功能:获取被控端当前会话的连接信息(是否是p2p连接,是否是本地局域网互联)
参数:
client由SLCreateClient创建出来的被控制端环境
session 会话
isp2p 是否是p2p连接
islocal 是否是本地局域网互联
返回:是否获取成功
功能:获取主控端当前会话的连接信息(是否是p2p连接,是否是本地局域网互联)
参数:
remote由SLCreateRemote创建出来的主控制端环境
session 会话
isp2p 是否是p2p连接
islocal 是否是本地局域网互联
返回:是否获取成功
功能:设置远程SSH窗口的大小
参数:
remote 由SLCreateRemote创建出来的主控制端环境
session 会话
x x坐标
y y坐标
width宽度
height高度
返回:是否设置成功
功能:设置远程文件管理窗口的大小
参数:
remote 由SLCreateRemote创建出来的主控制端环境
session 会话
x x坐标
y y坐标
width宽度
height高度
返回:是否设置成功
ESLSessionOpt枚举了所有可以使用的会话属性,你可以使用SLGetClientSessionOpt和SLSetRemoteSessionOpt来获取会话属性,可以使用SLSetClientSessionOpt和SLSetRemoteSessionOpt来设置会话属性。
有的属性只能用在被控制端,有的属性只能用在主控制端,有的两者都可以使用,有的属性只能设置不能获取,有的属性只能获取不能设置。以下将详细介绍各个属性的使用方式。
适用会话:远程桌面会话,远程CMD会话,远程摄像头会话
适用方式:设置
功能:设置主控制端显示远程桌面的窗口句柄
参数:
pOptVal 窗口句柄指针,在Windows下为HWND*
nOptLen 窗口句柄字节数,在Windows下为sizeof(HWND)
适用会话:远程声音会话
适用方式:设置/获取
功能:设置被控制端传出声音是从声卡上传出还是麦克风传出
参数:
pOptVal 是否为麦克风传出,bool类型,true为是,false为否(即声卡传出)
nOptLen bool类型长度,即1个字节
适用会话:所有会话
适用方式:获取
功能:获取当前会话是否已经连接还是未连接
参数:
pOptVal 是bool类型,true为已连接,false为未连接
nOptLen bool类型长度,即1个字节
适用会话:所有会话
适用方式:设置
功能:设置端口转发的本地服务的ip地址和端口
参数:
pOptVal const char*类型,格式为 ip:port,具体请参考示例程序
nOptLen const char*类型长度
适用会话:所有会话
适用方式:设置
功能:设置文件传输保存路径
参数:
pOptVal const wchar_t* 类型
nOptLen const wchar_t 类型长度 2,具体请参考示例程序
系统信息 参数1(QueryStri