Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259

Telegram Bot недобавляет сообщения в TextBox

04.09.2022, 19:37. Показов 4145. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Telegram.Bot;
using Telegram.Bot.Extensions.Polling;
using Telegram.Bot.Types;
using Telegram.Bot.Exceptions;
 
namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public static TextBox textBox;
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private static async Task HandleUpdateAsync(ITelegramBotClient botClient, Update update, CancellationToken cancellationToken)
        {
            
            if (update.Type == Telegram.Bot.Types.Enums.UpdateType.Message)
            {
                var message = update.Message;
                string messageTo = $"Привет {message.Chat.FirstName}, отправь сюда адреса: ";
                if (message.Text.ToLower() == "/start")
                {
 
                    await botClient.SendTextMessageAsync(message.Chat, messageTo);
                    textBox.AppendText("File Copied");
                    return;
                }
                else if (message.Text.Length > 3)
                {
                    await botClient.SendTextMessageAsync(message.Chat, "Ожидайте заказ");
                    textBox.AppendText("File Copied");
                    return;
                }
                await botClient.SendTextMessageAsync(message.Chat, "Ошибка");
                return;
            }
        }
 
        public static async Task HandleErrorAsync(ITelegramBotClient botClient, Exception exception, CancellationToken cancellationToken)
        {
 
        }
 
 
 
        private static string token = "Здесь токен"; //API
        private static TelegramBotClient client; //BOT VLIENT
        private void Form1_Load(object sender, EventArgs e)
        {
            textBox = textBox1;
            client = new TelegramBotClient(token);
            var cts = new CancellationTokenSource();
            var cancellationToken = cts.Token;
            var receiverOptions = new ReceiverOptions{AllowedUpdates = { },};
            client.StartReceiving(HandleUpdateAsync, HandleErrorAsync, receiverOptions, cancellationToken);
            textBox.AppendText("Запущен бот " + client.GetMeAsync().Result.FirstName);
 
            
         
        }
    }
}
почемуто непишет сообщения в окошко

на 73 строке пишет а остальные две записи нет более того я пробовал посылать команды боту он наних реагирует а если добавить добавление текста в формочку то он нереагирует на команды
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.09.2022, 19:37
Ответы с готовыми решениями:

Telegram API (НЕ Telegram Bot API!) - как правильно спарсить все сообщения в чате?
Здравствуйте. Мне нужно выдрать все сообщения в определенном чате. Использую библиотеку TLSharp. Авторизация и т.д. прошли успешно. А...

Telegram bot не получает сообщения
Доброго времени суток. Создаю бота, получаю его id и name - выводит в консоль, все впорядке, проверяю статус isReceiving - true. Но...

Telegram Bot: Бот не реагирует на сообщения
Приветствую. Создаю бота через библиотеку - Telegram.Bot. Бот не реагирует на сообщения. Все что он должен на пока сделать,...

34
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
06.09.2022, 14:09  [ТС]
Студворк — интернет-сервис помощи студентам
Code
1
Ошибка    CS0103  Имя "LogBox" не существует в текущем контексте. WindowsFormsApp2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Telegram.Bot;
using Telegram.Bot.Polling;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;
 
namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            TextBox tb = new TextBox
            {
                Location = new Point(3, 3),
                Size = new Size(250, 150),
                Multiline = true,
                Name = "LogBox"
            };
            this.Controls.Add(tb);
 
            TelegramBotClient bot = new TelegramBotClient(token);
            bot.StartReceiving(HandleUpdate, HandleError,
                new ReceiverOptions { AllowedUpdates = { } },
                new CancellationTokenSource().Token);
            (this.Controls["LogBox"] as TextBox).AppendText("hello\n");
        }
 
        private async Task HandleUpdate(ITelegramBotClient bot, Update update, CancellationToken ct)
        {
            if (update.Type == UpdateType.Message)
            {
 ---------->LogBox.BeginInvoke(new Action(() => LogBox.AppendText(" ... ")));
 
                await bot.SendTextMessageAsync(update.Message.Chat, "OK");
            }
        }
 
        private async Task HandleError(ITelegramBotClient bot, Exception ex, CancellationToken ct)
        {
            await Task.Delay(1);
        }
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
        private string token = "токен";
    }
}
Добавлено через 56 секунд
строку я указал

Добавлено через 2 минуты
тоже самое
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Telegram.Bot;
using Telegram.Bot.Polling;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;
 
namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            TextBox tb = new TextBox
            {
                Location = new Point(3, 3),
                Size = new Size(250, 150),
                Multiline = true,
                Name = "LogBox"
            };
            this.Controls.Add(tb);
 
            TelegramBotClient bot = new TelegramBotClient(token);
            bot.StartReceiving(HandleUpdate, HandleError,
                new ReceiverOptions { AllowedUpdates = { } },
                new CancellationTokenSource().Token);
            (this.Controls["LogBox"] as TextBox).AppendText("hello\n");
        }
 
        private async Task HandleUpdate(ITelegramBotClient bot, Update update, CancellationToken ct)
        {
            if (update.Type == UpdateType.Message)
            {
               tb.BeginInvoke(new Action(() => tb.AppendText(" ... ")));
 
                await bot.SendTextMessageAsync(update.Message.Chat, "OK");
            }
        }
 
        private async Task HandleError(ITelegramBotClient bot, Exception ex, CancellationToken ct)
        {
            await Task.Delay(1);
        }
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
        private string token = "токен";
    }
}
Добавлено через 1 минуту
ураааааааааа победаааааааааааа

надо вот так

C#
1
(this.Controls["LogBox"] as TextBox).BeginInvoke(new Action(() => (this.Controls["LogBox"] as TextBox).AppendText(" ... ")));
Добавлено через 1 минуту
а теперь можете подсказать как записывать в файл то что приходит в бота
0
2410 / 1947 / 764
Регистрация: 27.07.2012
Сообщений: 5,582
06.09.2022, 14:10
Цитата Сообщение от addedie Посмотреть сообщение
Ошибка CS0103 Имя "LogBox" не существует в текущем контексте. WindowsFormsApp2
Забыл, что я в своём коде текстбокс "руками" добавлял. Надо так:
C#
1
2
3
4
5
6
7
8
9
10
        private async Task HandleUpdate(ITelegramBotClient bot, Update update, CancellationToken ct)
        {
            TextBox tb = this.Controls["LogBox"] as TextBox;
            if (update.Type == UpdateType.Message)
            {
               tb.BeginInvoke(new Action(() => tb.AppendText(" ... ")));
 
                await bot.SendTextMessageAsync(update.Message.Chat, "OK");
            }
        }
Цитата Сообщение от addedie Посмотреть сообщение
строку я указал
Но, если честно, я не очень понимаю, как вы с таким уровнем знаний по теме вообще пытаетесь что-то делать.
1
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
06.09.2022, 14:32  [ТС]
я делаю вот так

C#
1
2
                    string appendText = "This is extra text" + Environment.NewLine; 
                    File.AppendAllText("LOG.txt", appendText);
но оно ругается
Code
1
Ошибка    CS0117  "File" не содержит определение для "AppendAllText". WindowsFormsApp1
Добавлено через 3 минуты
хотя тут все показано

https://docs.microsoft.com/ru-... etcore-3.1

Добавлено через 1 минуту
и вот здесь тоже

https://docs.microsoft.com/ru-... mework-4.8
0
2410 / 1947 / 764
Регистрация: 27.07.2012
Сообщений: 5,582
06.09.2022, 14:39
Цитата Сообщение от addedie Посмотреть сообщение
Code
1
Ошибка CS0117 "File" не содержит определение для "AppendAllText". WindowsFormsApp1
хотя тут все показано
Ну там, когда показывали, не могли знать, что File может быть понят компилятором неоднозначно. В библиотеке бота тоже есть класс File, поэтому надо указать полное имя используемого класса:
C#
1
2
                    string appendText = "This is extra text" + Environment.NewLine; 
                    System.IO.File.AppendAllText("LOG.txt", appendText);
1
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
06.09.2022, 14:45  [ТС]
я привык иписать на чистом си и винапи

Добавлено через 5 минут
C#
1
System.IO.File.AppendAllText("LOG.txt", appendText);
Code
1
Ошибка    CS0104  "File" является неоднозначной ссылкой между "Telegram.Bot.Types.File" и "System.IO.File".
C#
1
Telegram.Bot.Types.File.AppendAllText("LOG.txt", appendText);
Code
1
Ошибка    CS0117  "File" не содержит определение для "AppendAllText". WindowsFormsApp1
0
2410 / 1947 / 764
Регистрация: 27.07.2012
Сообщений: 5,582
06.09.2022, 14:57
Приведите полный код, что вы там накопипастили к этому моменту. Гадать нет никакого желания.
1
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
06.09.2022, 15:00  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Telegram.Bot;
using Telegram.Bot.Extensions.Polling;
using Telegram.Bot.Types;
using Telegram.Bot.Exceptions;
 
namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        
        private /*static*/ async Task HandleUpdateAsync(ITelegramBotClient botClient, Update update, CancellationToken cancellationToken)
        {
 
            if (update.Type == Telegram.Bot.Types.Enums.UpdateType.Message)
            {
                var message = update.Message;
                string messageTo = $"Привет {message.Chat.FirstName}, отправь сюда адреса: ";
                if (message.Text.ToLower() == "/start")
                {
 
                    await botClient.SendTextMessageAsync(message.Chat, messageTo);
                    (this.Controls["textBox1"] as TextBox).BeginInvoke(new Action(() => (this.Controls["textBox1"] as TextBox).AppendText(update.Message.Text + "\r\n")));
 
                    return;
                }
                else if (message.Text.Length > 3)
                {
                    await botClient.SendTextMessageAsync(message.Chat, "Ожидайте заказ");
                    (this.Controls["textBox1"] as TextBox).BeginInvoke(new Action(() => (this.Controls["textBox1"] as TextBox).AppendText(update.Message.Text + "\r\n")));
                    string appendText = "This is extra text" + Environment.NewLine;
                    Telegram.Bot.Types.File.AppendAllText("LOG.txt", appendText);
                    return;
                }
                await botClient.SendTextMessageAsync(message.Chat, "Ошибка");
                return;
            }
        }
 
        public /*static*/ async Task HandleErrorAsync(ITelegramBotClient botClient, Exception exception, CancellationToken cancellationToken)
        {
 
        }
 
 
 
        private static string token = "TOKEN"; //API
        private static TelegramBotClient client; //BOT VLIENT
        private void Form1_Load(object sender, EventArgs e)
        {
 
            client = new TelegramBotClient(token);
            var cts = new CancellationTokenSource();
            var cancellationToken = cts.Token;
            var receiverOptions = new ReceiverOptions{AllowedUpdates = { },};
            client.StartReceiving(this.HandleUpdateAsync, this.HandleErrorAsync, receiverOptions, cancellationToken);
            
            string path = @"LOG.txt";
 
            // This text is added only once to the file.
            if (!Telegram.Bot.Types.File.Exists(path))
            {
                // Create a file to write to.
                string createText = "Hello and Welcome" + Environment.NewLine;
                Telegram.Bot.Types.File.WriteAllText(path, createText);
            }
            textBox1.AppendText("Запущен бот " + client.GetMeAsync().Result.FirstName + "\r\n");
 
 
 
        }
 
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
 
        }
    }
}
Добавлено через 1 минуту
пробовал добавить using System.IO;
непомогло
0
2410 / 1947 / 764
Регистрация: 27.07.2012
Сообщений: 5,582
06.09.2022, 15:19
Лучший ответ Сообщение было отмечено addedie как решение

Решение

Да не тот File, говорю же.
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Telegram.Bot;
using Telegram.Bot.Extensions.Polling;
using Telegram.Bot.Types;
using Telegram.Bot.Exceptions;
 
namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        
        private /*static*/ async Task HandleUpdateAsync(ITelegramBotClient botClient, Update update, CancellationToken cancellationToken)
        {
 
            if (update.Type == Telegram.Bot.Types.Enums.UpdateType.Message)
            {
                var message = update.Message;
                string messageTo = $"Привет {message.Chat.FirstName}, отправь сюда адреса: ";
                if (message.Text.ToLower() == "/start")
                {
 
                    await botClient.SendTextMessageAsync(message.Chat, messageTo);
                    (this.Controls["textBox1"] as TextBox).BeginInvoke(new Action(() => (this.Controls["textBox1"] as TextBox).AppendText(update.Message.Text + "\r\n")));
 
                    return;
                }
                else if (message.Text.Length > 3)
                {
                    await botClient.SendTextMessageAsync(message.Chat, "Ожидайте заказ");
                    (this.Controls["textBox1"] as TextBox).BeginInvoke(new Action(() => (this.Controls["textBox1"] as TextBox).AppendText(update.Message.Text + "\r\n")));
                    string appendText = "This is extra text" + Environment.NewLine;
                    System.IO.File.AppendAllText("LOG.txt", appendText);
                    return;
                }
                await botClient.SendTextMessageAsync(message.Chat, "Ошибка");
                return;
            }
        }
 
        public /*static*/ async Task HandleErrorAsync(ITelegramBotClient botClient, Exception exception, CancellationToken cancellationToken)
        {
 
        }
 
 
 
        private static string token = "TOKEN"; //API
        private static TelegramBotClient client; //BOT VLIENT
        private void Form1_Load(object sender, EventArgs e)
        {
 
            client = new TelegramBotClient(token);
            var cts = new CancellationTokenSource();
            var cancellationToken = cts.Token;
            var receiverOptions = new ReceiverOptions{AllowedUpdates = { },};
            client.StartReceiving(this.HandleUpdateAsync, this.HandleErrorAsync, receiverOptions, cancellationToken);
            
            string path = @"LOG.txt";
 
            // This text is added only once to the file.
            if (!System.IO.File.Exists(path))
            {
                // Create a file to write to.
                string createText = "Hello and Welcome" + Environment.NewLine;
                System.IO.File.WriteAllText(path, createText);
            }
            textBox1.AppendText("Запущен бот " + client.GetMeAsync().Result.FirstName + "\r\n");
        }
    }
}

Цитата Сообщение от addedie Посмотреть сообщение
непомогло
Зачем вам эти тыкания вслепую? Почитайте вы какой-нибудь учебник по C#. Это же будет всяко продуктивнее, чем писать на форум по каждому чиху.
0
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
06.09.2022, 15:39  [ТС]
странно я так делал и мне ругалось на
C#
1
Ошибка    CS0104  "File" является неоднозначной ссылкой между "Telegram.Bot.Types.File" и "System.IO.File".
0
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
06.09.2022, 15:43  [ТС]
блин теперь другая проблема

при запуске бота с рабочего стола вот такое вылазит
Миниатюры
Telegram Bot недобавляет сообщения в TextBox  
0
2410 / 1947 / 764
Регистрация: 27.07.2012
Сообщений: 5,582
06.09.2022, 16:21
Цитата Сообщение от addedie Посмотреть сообщение
при запуске бота с рабочего стола вот такое вылазит
Что значит "с рабочего стола"?
1
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
06.09.2022, 16:42  [ТС]
скопировал бота на рабочий стол но он тянет за собой длл файлы, как от них избавиться?
0
2410 / 1947 / 764
Регистрация: 27.07.2012
Сообщений: 5,582
06.09.2022, 16:44
Цитата Сообщение от addedie Посмотреть сообщение
скопировал бота на рабочий стол но он тянет за собой длл файлы, как от них избавиться?
Никак, без них не работает.
Вы всегда копируете экзешники на рабочий стол?
1
3 / 3 / 1
Регистрация: 07.09.2019
Сообщений: 259
06.09.2022, 16:57  [ТС]
хотелось бы без дллок чтоб запускалось
0
2410 / 1947 / 764
Регистрация: 27.07.2012
Сообщений: 5,582
06.09.2022, 17:28
Цитата Сообщение от addedie Посмотреть сообщение
хотелось бы без дллок чтоб запускалось
Не запустите без них никак. А на рабочем столе принято ярлыки создавать, а не файлы на него копировать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.09.2022, 17:28

Telegram Bot, пересылка сообщения
Пытаюсь написать бот автоответчик для телеграма. Для написания использую библиотеку Telegram.Bot. Но столкнулся с одной трудностью, мне...

Telegram Bot, дублирующий сообщения с Twitch
Добрый день. Могли бы Вы подсказать. Хочу сделать телеграм канал (бота) на Python, где будут автоматически дублироваться сообщения с твич...

Telegram Bot API. Функция сохранения сообщения
Есть бот, взаимодействие с которым реализовано с помощью Inline кнопок. Только в паре моментов надо что то вводить. Так вот, нужна кнопка...

Получать сообщения канала используя Telegram.Bot
Есть бот, является админом в канале. Как с помощью библиотеки Telegram.Bot я могу получить сообщения из этого канала?

Как посмотреть текст сообщения бота (Telegram bot, Python)?
Использую библиотеку Telebot. Ситуация: пользователь написал боту сообщения. Мне нужно узнать текст сообщения бота, которое находится...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
Новые блоги и статьи
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru