Advertisement
Guest User

winformsVK

a guest
Jun 8th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.46 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11. using MaterialSkin;
  12. using MaterialSkin.Controls;
  13. using VkNet;
  14. using VkNet.Enums.Filters;
  15. using VkNet.Enums.SafetyEnums;
  16. using VkNet.Model;
  17. using VkNet.Model.RequestParams;
  18. using VkNet.Categories;
  19. using System.Speech;
  20. using System.Speech.Synthesis;
  21.  
  22. namespace VKMessangerMaterialDesign
  23. {
  24.     public partial class LoginForm : MaterialForm
  25.     {
  26.         VkApi vkapi = new VkApi();
  27.  
  28.         ulong ts;
  29.         ulong? pts;
  30.  
  31.         short chat_id;
  32.         long? user_id;
  33.         long messageid;
  34.  
  35.         SpeechSynthesizer voicer = new SpeechSynthesizer();
  36.  
  37.         public string firstMessage = "";
  38.  
  39.         public LoginForm()
  40.         {
  41.             InitializeComponent();
  42.             ActiveControl = authStatusLabel;
  43.         }
  44.  
  45.         private void LoginForm_Load(object sender, EventArgs e)
  46.         {
  47.             incMessagesLabel.Text = "Просмотр сообщений не доступен, пока вы не авторизованы.";
  48.             authStatusLabel.Visible = false;
  49.         }
  50.  
  51.         private void loginButton_Click(object sender, EventArgs e)
  52.         {
  53.             if(loginTextField.Text == "" || passwordTextField.Text == "")
  54.             {
  55.                 authStatusLabel.Text = "Поле логина или пароля не может оставаться пустым.";
  56.  
  57.                 if (authStatusLabel.Visible == false)
  58.                     authStatusLabel.Visible = true;
  59.             }
  60.             else
  61.             {
  62.                 try
  63.                 {
  64.                     vkapi.Authorize(new ApiAuthParams
  65.                     {
  66.                         ApplicationId = 6501579,
  67.                         Login = loginTextField.Text,
  68.                         Password = passwordTextField.Text,
  69.                         Settings = Settings.All
  70.                     });
  71.  
  72.                     var userInfo = vkapi.Users.Get(new long[] { vkapi.UserId.Value });
  73.                     authStatusLabel.Text = $"Вы успешно авторизовались как {userInfo[0].FirstName} {userInfo[0].LastName}.";
  74.  
  75.                     voicer.SelectVoice("Microsoft Irina Desktop");
  76.                     voicer.Volume = 100;
  77.                     voicer.Rate = 0;
  78.                     voicer.SpeakAsync("Вы успешно авторизовались.");
  79.  
  80.                     incMessagesLabel.Text = "Список входящих сообщений:";
  81.  
  82.                     if (authStatusLabel.Visible == false)
  83.                         authStatusLabel.Visible = true;
  84.  
  85.                     messagesListView.Columns.Add("Автор сообщения:");
  86.                     messagesListView.Columns.Add("Текст сообщения:");
  87.                     messagesListView.Columns[0].Width = 205;
  88.                     messagesListView.Columns[1].Width = 252;
  89.  
  90.  
  91.                     ts = vkapi.Messages.GetLongPollServer(false, 2).Ts;
  92.                     pts = vkapi.Messages.GetLongPollServer(true, 2).Pts;
  93.  
  94.                     while(true)
  95.                     {
  96.                         try
  97.                         {
  98.                             var test = vkapi.Messages.GetLongPollHistory(new MessagesGetLongPollHistoryParams
  99.                             {
  100.                                 Ts = ts,
  101.                                 Pts = pts
  102.                             });
  103.  
  104.                             pts = test.NewPts;
  105.                             chat_id = (short)(test.Messages[0].ChatId);
  106.                             user_id = test.Messages[0].UserId;
  107.                             messageid = Convert.ToInt64(test.Messages[0].Id);
  108.  
  109.                             var getUserInfo = vkapi.Users.Get(new long[] { (long) user_id });
  110.  
  111.                             messagesListView.Items.Add(new ListViewItem { Text = getUserInfo[0].FirstName + " " + getUserInfo[0].LastName });
  112.                             //messagesListView.Items[i].SubItems.Add(new ListViewItem.ListViewSubItem { Text = get_messages.Messages[i].Body.ToString() });
  113.                         }
  114.                         catch
  115.                         {
  116.  
  117.                         }
  118.                     }
  119.                     //var get_messages = vkapi.Messages.Get(new MessagesGetParams
  120.                     //{
  121.                     //    Count = 8
  122.                     //});
  123.                     //for(int i = 0; i < get_messages.Messages.Count; i++)
  124.                     //{
  125.                     //    if (i == 0)
  126.                     //        firstMessage = get_messages.Messages[i].Body.ToString();
  127.  
  128.                     //    var get_user = vkapi.Users.Get(new long[] { long.Parse(get_messages.Messages[i].UserId.ToString()) });
  129.                     //    messagesListView.Items.Add(new ListViewItem { Text = get_user[0].FirstName + " " + get_user[0].LastName });
  130.                     //    messagesListView.Items[i].SubItems.Add(new ListViewItem.ListViewSubItem { Text = get_messages.Messages[i].Body.ToString() });
  131.                     //}
  132.                 }
  133.                 catch
  134.                 {
  135.                     authStatusLabel.Text = "Авторизация не удалась.";
  136.  
  137.                     if (authStatusLabel.Visible == false)
  138.                         authStatusLabel.Visible = true;
  139.                 }
  140.             }
  141.         }
  142.     }
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement