示例#1
0
        public void ticks(object Params)
        {
            VKAPI  vk = new VKAPI(Program.accessToken);
            string w;

            XmlDocument friendList;

            if ((((object[])(Params))[1].ToString() == "gr") | ((object[])(Params))[1].ToString() == "gr_mes")
            {
                friendList = vk.GetGroupMembers(this.textBoxGroupID.Text, this.textBox_offset.Text);
                w          = "response/users/uid";
            }
            else if (((object[])(Params))[1].ToString() == "ls_mes")
            {
                //TextReader txt = @"D:\Projects\TempApp\GroupAdmin\GroupAdmin\files\friendsAdd.txt";
                friendList = new XmlDocument();
                friendList.Load(directory + @"\files\friendsAdd.xml");
                w = "response/uid";
            }
            else if (((object[])(Params))[1].ToString() == "add_fr")
            {
                //TextReader txt = @"D:\Projects\TempApp\GroupAdmin\GroupAdmin\files\friendsAdd.txt";
                friendList = new XmlDocument();
                friendList = vk.GetRequests();
                w          = "response/uid";
            }
            else
            {
                // я чет запутался что здесь должно быть, поэтому закоментил
                friendList = vk.GetAllFriends();
                w          = "response/items/user_id";
            }



            foreach (XmlNode node  in friendList.SelectNodes(w)) // "/users"
            {
                Thread.Sleep(300);

                cntr_users += 1;

                StreamWriter strmwrtr = new StreamWriter(directory + @"\files\usercntr.txt");
                strmwrtr.Write(cntr_users.ToString());
                strmwrtr.Close();
                XmlDocument invite;
                if (((object[])(Params))[1].ToString() == "gr_mes" | ((object[])(Params))[1].ToString() == "ls_mes")
                {
                    invite = vk.SendMessage(node.InnerText, this.textBoxGroupMess.Text, "");
                }
                else if (((object[])(Params))[1].ToString() == "add_fr")
                {
                    invite = vk.AddFriend(node.InnerText);
                    invite = vk.SendMessage(node.InnerText, @"Привет. Ты добавился просто для количества? 
                                                                Могу помочь с накруткой друзей, реальных людей. Дешево и качестванно) 
                                                                Либо могу присылать тебе время от времени людей чтобы ты сам  добавлял их в друзья. Бесплатно)", "");
                }
                else
                {
                    invite = vk.InviteUserToGroup(Convert.ToInt32(this.textBoxEventID.Text), Convert.ToInt32(node.InnerText));
                }
                StreamWriter strmwrtrlog = new StreamWriter(directory + @"\files\log.txt", true);
                if (invite.SelectNodes("/error/error_code").Count != 0)
                {
                    strmwrtrlog.WriteLine(cntr_users.ToString() + " " + node.InnerText + " " + invite.SelectSingleNode("/error/error_code").InnerText.ToString());    //+ node1.InnerText
                }
                else
                {
                    strmwrtrlog.WriteLine(cntr_users.ToString() + " " + node.InnerText + " OK");     //+ node1.InnerText
                }
                strmwrtrlog.Close();

                foreach (XmlNode node1  in invite.SelectNodes("/error/error_code"))
                {
                    if (node1.InnerText == "14")
                    {
                        object[] Params1 = { Params, invite.SelectSingleNode("/error/captcha_img").InnerText.ToString() };

                        var form = ((FormCapcha)((object[])((Params1)[0]))[0]);
                        form.Tag = "stop";
                        //Если возникает данная ошибка, то в сообщении об ошибке передаются также следующие параметры:
                        //captcha_sid - идентификатор captcha
                        //captcha_img - ссылка на изображение, которое нужно показать пользователю, чтобы он ввел текст с этого изображения.

                        //В этом случае следует запросить пользователя ввести текст с изображения captcha_img и повторить запрос, добавив в него параметры:
                        //captcha_sid - полученный идентификатор
                        //captcha_key - текст, который ввел пользователь

                        while (form.Tag.ToString() == "stop") //ждем пока пользователь не нажмет кнопку
                        {
                            form.Invoke(new Action(() =>
                            {
                                form.Show();
                                form.label1.Text = ((object[])(Params1))[1].ToString(); //передаем в форму переменную
                            }));
                        }
                        //MessageBox.Show(form.Tag.ToString()); // получаем введенное значение
                        //invite.SelectSingleNode("/error/captcha_sid").InnerText.ToString();
                        if (((object[])(Params))[1].ToString() == "gr_mes" | ((object[])(Params))[1].ToString() == "ls_mes")
                        {
                            XmlDocument inviteCapcha = vk.SendMessage(node.InnerText, this.textBoxGroupMess.Text, "", invite.SelectSingleNode("/error/captcha_sid").InnerText.ToString(), form.Tag.ToString());
                        }
                        else
                        {
                            XmlDocument inviteCapcha = vk.InviteUserToGroup(Convert.ToInt32(this.textBoxEventID.Text), Convert.ToInt32(node.InnerText), invite.SelectSingleNode("/error/captcha_sid").InnerText.ToString(), form.Tag.ToString());
                        }
                    }
                }
            }

            MessageBox.Show("Ready");    // это то, что выполняется в цикле
        }
示例#2
0
        private void buttonSendMsg_Click(object sender, EventArgs e)
        {
            VKAPI vk = new VKAPI(Program.accessToken);

            vk.SendMessage(this.textBoxSendUserID.Text, this.textBoxSendMsg.Text, this.textBoxSendMsgTitle.Text);
        }