• На форуме разрешено создавать темы только для пользователей, кто имеет группу «Продавец». Приобрести её можно здесь: https://dstock.biz/account/upgrades. Либо в телеграме https://t.me/DustDS

Статья Посмотреть кто онлайн Вк (C# без API)

Irval

Главный Модератор
Главный Модератор

Irval

Главный Модератор
Главный Модератор
Статус
Оффлайн
Регистрация
31 Май 2019
Сообщения
245
Реакции
84
Всем привет. Хотелось бы поделиться с пользователями форума одной из моих наработок, связанных с получением онлайна любого пользователя, чей id (или короткая ссылка) вам известен. Для большего удобства, я создал библиотеку, которая анализирует текст на странице пользователя и при обнаружении заветной надписи "Online" возвращает переменной значение true. Долго объяснять принципы работы не буду, так как это вам не нужно для реализации данной функции) Самый важный момент - скрытые в поиске страницы не будут подходить для нашей программы!
Чтобы воспользоваться методом, достаточно подключить скаченную вами библиотеку и прописать using OnlineLib; (dll подходит только для .Net Framework). Теперь можно спокойно получать онлайн нашего заветного пользователя! Пример реализации:
C#:
const string UserName = "irval26";
OnlineLib.Class lib = new OnlineLib.Class();
bool tempVal;
public Form1()
    {
        InitializeComponent();
    }

bool ValueChanged(bool newVal)
    {
        return tempVal == newVal ? false : true;
    }

void Update()
    {
        if (!ValueChanged(lib.GetOnlineAdmin(UserName)))
            if (lib.GetOnlineAdmin(UserName)) { label1.Text = "Онлайн"; label1.ForeColor = Color.Green; } else { label1.Text = "Офлайн"; label1.ForeColor = Color.Red; }
        tempVal = lib.GetOnlineAdmin(UserName);
    }

private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
            Update();
    }


На выходе у нас получится программа, показывающая онлайн введенного пользователя:

1587212464432.png


Ссылка на библиотеку:
Пожалуйста, авторизуйтесь для просмотра ссылки.

VT:
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Последнее редактирование:

Irval

Главный Модератор
Главный Модератор

Irval

Главный Модератор
Главный Модератор
Статус
Оффлайн
Регистрация
31 Май 2019
Сообщения
245
Реакции
84
У данного метода есть свои недостатки - если страница пользователя скрыта для неавторизированных пользователей - библиотека не будет работать. Для этого нужно использовать VK API. Лично я использую библиотеку VK NET (
Пожалуйста, авторизуйтесь для просмотра ссылки.
). Установить ее можно, как с помощью NuGet, так и с помощью менеджера пакетов. Итоговый код для получения онлайна пользователя выглядит так:
C#:
using System;
using System.Linq;
using System.Windows.Forms;
using VkNet;
using VkNet.Model;

namespace VkOnline
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
       
        bool isOnline(string users)
        {
            var api = new VkApi();
            api.Authorize(new ApiAuthParams
            {
                AccessToken = "" // Токен вашей страницы ВКонтакте
            });
            var p = api.Users.Get(users, VkNet.Enums.Filters.ProfileFields.Online).FirstOrDefault();
            return p == null ? false: true
        }
       
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show(isOnline(new string[] {"irval26"}).ToString())
        }
    }
}
Прошу заметить, что метод api.Users.Get первым аргументом требует именно массив id пользователей, в моем коде обработка только одного. Множественное получение онлайна делается по той же аналогии.
 
Последнее редактирование:
Сверху