/// <summary> /// 获取当前 QQMini 框架的框架类型 /// </summary> /// <returns>如果获取成功返回 <see cref="QQMiniFrameworkTypes"/> 枚举的值</returns> public QQMiniFrameworkTypes GetFrameworkType() { int result = QQMiniApi.QMApi_GetFrameType(this.AuthCode); CheckResultThrowException(result); return((QQMiniFrameworkTypes)result); }
/// <summary> /// 获取当前 QQMini 框架的框架版本号 /// </summary> /// <returns>如果获取成功返回表示框架版本号的 <see cref="Version"/> 对象</returns> public Version GetFrameworkVersion() { int result = QQMiniApi.QMApi_GetFrameVersion(this.AuthCode, out IntPtr version); CheckResultThrowException(result); return(Version.Parse(version.ToString(Global.DefaultEncoding))); }
/// <summary> /// 获取指定QQ的好友验证方式 /// </summary> /// <returns>好友验证方式的枚举</returns> public FriendVerifyTypes GetFriendVerifyMode(long robotQQ, long targetQQ) { int result = QQMiniApi.QMApi_GetFriendVerifyMode(this.AuthCode, robotQQ, targetQQ); CheckResultThrowException(result); return((FriendVerifyTypes)result); }
/// <summary> /// 获取指定QQ是否在线 /// </summary> /// <param name="robotQQ">要用来获取在线状态的QQ号</param> /// <param name="targetQQ">要获取其是否在线的QQ号</param> /// <returns>如果指定的QQ是在线的, 返回 <see langword="true"/>; 否则返回 <see langword="false"/></returns> public bool GetIsOnline(long robotQQ, long targetQQ) { int result = QQMiniApi.QMApi_GetIsOnline(this.AuthCode, robotQQ, targetQQ); CheckResultThrowException(result); return(result == 1); }
/// <summary> /// 获取指定QQ号的QQ在线状态 /// </summary> /// <param name="robotQQ">用来获取在线状态的QQ号</param> /// <param name="targetQQ">要获取其在线状态的QQ号</param> /// <returns>QQ在线状态的枚举</returns> public OnlineStatusTypes GetOnlineStatus(long robotQQ, long targetQQ) { int result = QQMiniApi.QMApi_GetOnlineStatus(this.AuthCode, robotQQ, targetQQ); CheckResultThrowException(result); return((OnlineStatusTypes)result); }
/// <summary> /// 获取指定群组成员禁言的状态 /// </summary> /// <param name="robotQQ">用来获取在线状态的QQ号</param> /// <param name="targetGroup">要获取其禁言状态的群组</param> /// <param name="targetQQ">要获取其禁言状态的QQ号</param> /// <returns>如果群组处于禁言状态返回 <see langword="true"/>; 否则返回 <see langword="false"/></returns> public bool GetGroupMemberBanStatus(long robotQQ, long targetGroup, long targetQQ) { int result = QQMiniApi.QMApi_GetGroupBanStatus(this.AuthCode, robotQQ, targetGroup, targetQQ); CheckResultThrowException(result); return(result == 1); }
/// <summary> /// 获取当前插件的数据目录 /// </summary> /// <returns>如果获取成功返回数据目录</returns> public string GetPluginDataDirectory() { int result = QQMiniApi.QMApi_GetPluginDataDirectory(this.AuthCode, out IntPtr szDirectory); CheckResultThrowException(result); return(szDirectory.ToString(Global.DefaultEncoding)); }
/// <summary> /// 获取指定QQ用于操作网页的 G_tk 或 bkn 值 /// </summary> /// <param name="robotQQ">要获取 G_tk 或 bkn 值的QQ号</param> /// <returns>用于操作网页的 Cookies</returns> public string GetBkn(long robotQQ) { int result = QQMiniApi.QMApi_GetBkn(this.AuthCode, robotQQ, out IntPtr bkn); CheckResultThrowException(result); return(bkn.ToString(Global.DefaultEncoding)); }
/// <summary> /// 获取当前 QQMini 框架的时间戳 /// </summary> /// <returns>如果获取成功返回以 "秒" 为单位的时间戳</returns> public long GetFrameworkTimpStmap() { long result = QQMiniApi.QMApi_GetFrameTimeStamp(this.AuthCode); CheckResultThrowException(result); return(result); }
/// <summary> /// 获取指定QQ用于操作网页的 Cookies /// </summary> /// <param name="robotQQ">要获取 Cookies 的QQ号</param> /// <returns>用于操作网页的 Cookies</returns> public string GetCookies(long robotQQ) { int result = QQMiniApi.QMApi_GetCookies(this.AuthCode, robotQQ, out IntPtr cookiesStr); CheckResultThrowException(result); return(cookiesStr.ToString(Global.DefaultEncoding)); }
/// <summary> /// 设置一条致命错误信息. (注意: 设置后将导致框架停止运行) /// </summary> /// <param name="code">错误代码</param> /// <param name="message">异常消息</param> /// <returns>设置成功返回 <see langword="true"/>, 否则返回 <see langword="false"/></returns> public bool Fatal(int code, string message) { GCHandle messageHandle = message.GetStringGCHandle(Global.DefaultEncoding); try { return(QQMiniApi.QMApi_SetFatal(this.AuthCode, code, messageHandle.AddrOfPinnedObject()) == 0); } finally { messageHandle.Free(); } }
/// <summary> /// 设置一条指定等级的日志信息到框架 /// </summary> /// <param name="level">设置日志的等级</param> /// <param name="message">日志的详细信息</param> public void Log(LogLevel level, string message) { GCHandle messageHandle = message.GetStringGCHandle(Global.DefaultEncoding); try { int result = QQMiniApi.QMApi_SetLogger(this.AuthCode, (int)level, messageHandle.AddrOfPinnedObject()); CheckResultThrowException(result); } finally { messageHandle.Free(); } }
/// <summary> /// 向指定的QQ发送好友验证回应消息 /// </summary> /// <param name="robotQQ">响应此请求的QQ</param> /// <param name="sendQQ">接收消息的目标QQ</param> /// <param name="message">要发送的消息内容</param> /// <returns>返回发送的消息 <see cref="Message"/> 实例</returns> public Message SendFriendResponseMessage(long robotQQ, long sendQQ, string message) { GCHandle messageHandle = message.GetStringGCHandle(Global.DefaultEncoding); try { int result = QQMiniApi.QMApi_SendMessage(this.AuthCode, robotQQ, MSG_FRIEND_RESPONSE, 0, sendQQ, messageHandle.AddrOfPinnedObject(), 0); CheckResultThrowException(result); return(new Message(0, 0, message)); } finally { messageHandle.Free(); } }
/// <summary> /// 向指定的QQ发送一条讨论组临时消息 /// </summary> /// <param name="robotQQ">响应此请求的QQ</param> /// <param name="fromDiscuss">目标QQ所在的群组</param> /// <param name="sendQQ">接收消息的目标QQ</param> /// <param name="message">要发送的消息内容</param> /// <returns>返回发送的消息 <see cref="Message"/> 实例</returns> public Message SendDiscussTempMessage(long robotQQ, long fromDiscuss, long sendQQ, string message) { GCHandle messageHandle = message.GetStringGCHandle(Global.DefaultEncoding); try { int result = QQMiniApi.QMApi_SendMessage(this.AuthCode, robotQQ, MSG_DISCUSS_TEMP, fromDiscuss, sendQQ, messageHandle.AddrOfPinnedObject(), 0); CheckResultThrowException(result); return(new Message(0, 0, message)); } finally { messageHandle.Free(); } }
/// <summary> /// 向指定的群组发送一条消息 /// </summary> /// <param name="responseQQ">响应此请求的QQ</param> /// <param name="sendGroup">接收消息的目标群组</param> /// <param name="message">要发送的消息内容</param> /// <returns>返回发送的消息 <see cref="Message"/> 实例</returns> public Message SendGroupMessage(QQ responseQQ, Group sendGroup, string message) { GCHandle messageHandle = message.GetStringGCHandle(Global.DefaultEncoding); try { int result = QQMiniApi.QMApi_SendMessage(this._authCode, responseQQ, MSG_GROUP, sendGroup, 0, messageHandle.AddrOfPinnedObject(), 0); CheckResultThrowException(result); return(new Message(0, 0, message)); } finally { messageHandle.Free(); } }