예제 #1
0
파일: CqApi.cs 프로젝트: zqu1016/IBoxs
        /// <summary>
        /// 获取QQ信息
        /// </summary>
        /// <param name="qqId">目标QQ</param>
        /// <param name="notCache">不使用缓存, 默认为"False",通常忽略本参数,仅在必要时使用</param>
        /// <returns>获取成功返回 <see cref="QQInfo"/>, 失败返回 null</returns>
        public QQInfo GetQQInfo(long qqId, bool notCache = true)
        {
            string result = CQP.CQ_getStrangerInfo(_authCode, qqId, notCache).ToString(Encoding.ASCII);

            if (string.IsNullOrEmpty(result))
            {
                return(null);
            }
            using (BinaryReader binary = new BinaryReader(new MemoryStream(Convert.FromBase64String(result))))
            {
                try
                {
                    QQInfo qqInfo = new QQInfo();
                    qqInfo.Id   = binary.ReadInt64_Ex();
                    qqInfo.Nick = binary.ReadString_Ex(_defaultEncoding);
                    qqInfo.Sex  = (Sex)binary.ReadInt32_Ex();
                    qqInfo.Age  = binary.ReadInt32_Ex();
                    return(qqInfo);
                }
                catch
                {
                    return(null);
                }
            }
        }
예제 #2
0
 private void printOutput(QQInfo info)
 {
     if (textBox1.InvokeRequired)
     {
         ChatController.sendQQChatMessage printEvent = new ChatController.sendQQChatMessage(printOutput);
         Invoke(printEvent, (object)info);
     }
     else
     {
         textBox1.AppendText("\r\nHM_11 : " + info.info + "\r\n");
     }
 }
예제 #3
0
        public QQChats()
        {
            InitializeComponent();

            Info = new QQInfo();

            Binding QQNamebinding = new Binding();

            QQNamebinding.Source = Info;
            QQNamebinding.Path   = new PropertyPath("QQName");
            BindingOperations.SetBinding(this.QQName, TextBlock.TextProperty, QQNamebinding);

            Binding QQSaysbinding = new Binding();

            QQSaysbinding.Source = Info;
            QQSaysbinding.Path   = new PropertyPath("QQSays");
            BindingOperations.SetBinding(this.QQSays, TextBlock.TextProperty, QQSaysbinding);
        }
예제 #4
0
 /// <summary>
 /// 获取QQ信息
 /// </summary>
 /// <param name="qqId">目标QQ</param>
 /// <param name="notCache">不使用缓存, 默认为"False",通常忽略本参数,仅在必要时使用</param>
 /// <returns>获取成功返回 <see cref="QQInfo"/>, 失败返回 null</returns>
 public QQInfo GetQQInfo(long qqId, bool notCache = false)
 {
     string result = CQP.CQ_getStrangerInfo(_authCode, qqId, notCache).ToString(Encoding.ASCII);
     if (string.IsNullOrEmpty(result))
     {
         return null;
     }
     using (BinaryReader binary = new BinaryReader(new MemoryStream(Convert.FromBase64String(result))))
     {
         QQInfo qqInfo = new QQInfo
         {
             Id = binary.ReadInt64_Ex(),
             Nick = binary.ReadString_Ex(_defaultEncoding),
             Sex = (Sex)binary.ReadInt32_Ex(),
             Age = binary.ReadInt32_Ex()
         };
         return qqInfo;
     }
 }
예제 #5
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            frmAddQQ frmaddqq = new frmAddQQ();                //实例化“添加QQ账号”窗体

            if (frmaddqq.ShowDialog() == DialogResult.OK)      //判断窗体的返回值
            {
                QQInfo qqinfo = frmaddqq.GetQQInfo();          //获取添加的QQ账号信息
                for (int i = 0; i < lvInfo.Items.Count; i++)   //遍历ListView控件中的所有项
                {
                    if (qqinfo.Number == lvInfo.Items[i].Text) //判断遍历到的项与要添加的项是否相同
                    {
                        MessageBox.Show("号码已存在");
                        return;
                    }
                }
                this.qqList.Add(qqinfo);                  //将要添加的QQ账号添加到QQ账号列表中
                initListView();                           //重新初始化ListView控件中的项
                QQFilePath.SetQQList(qqInfoPath, qqList); //将QQ账号列表中的数据写入到XML文件
            }
        }
        public string deal(QQInfo info)
        {
            string sentence = info.info;
            int    sym      = sentence.IndexOf("》》");

            if (sym < 0)
            {
                // not found
                return(getAnswer(sentence));
            }
            else
            {
                string res = "";

                string question = sentence.Substring(0, sym);
                string answer   = sentence.Substring(sym + 2);
                string author   = info.qq.ToString();
                addLearn(question, answer, author);

                return(res);
            }
        }
예제 #7
0
        private void btnStart_Click(object sender, EventArgs e)
        {
            string qqPath = frmSet.GetQQRegistryValue(QQRegister.STR_QQ_REG_KEY_PRGRM_PATH); //获取注册表中QQ路径信息

            if (string.IsNullOrEmpty(qqPath))                                                //判断QQ路径是否为空
            {
                MessageBox.Show(QQRegister.STR_QQ_WARN_PRGRM_PATH_NULL);
                return;
            }
            if (!qqPath.ToLower().EndsWith("qq.exe"))//判断QQ路径是否正确
            {
                MessageBox.Show(QQRegister.STR_QQ_WARN_PRGRM_PATH_ERR);
                return;
            }
            foreach (ListViewItem qqItem in lvInfo.Items)           //遍历ListView列表
            {
                QQInfo qqinfo = qqList[qqItem.Index];               //记录遍历到的QQ账号
                if (qqItem.Checked)                                 //判断QQ账号是否选中
                {
                    qqinfo.IsChecked = true;                        //设置选中状态
                    string strNum = qqinfo.Number;                  //记录QQ账号
                    string strPwd = qqinfo.Pwd;                     //记录QQ密码,并加密
                    bool   blHide = qqinfo.IsHide;                  //记录QQ隐身状态
                    qqinfo.LastLoginTime = DateTime.Now.ToString(); //记录QQ最后登录时间
                    try
                    {
                        Process.Start(qqPath, "/START QQUIN:" + strNum + " PWDHASH:" + strPwd + " /STAT:" + (blHide ? "40" : "41"));//启动遍历到的QQ账号
                    }
                    catch
                    {
                        MessageBox.Show("本机还没有安装QQ,请安装之后再使用本软件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                else
                {
                    qqinfo.IsChecked = false;//设置未选中状态
                }
            }
        }