Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
51 / 51 / 7
Регистрация: 23.01.2012
Сообщений: 449
1

Как правильно перехватывать данные из консоли

05.05.2012, 14:46. Показов 1278. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброе время суток уважаемые !

Вот перехватываю данные из консоли:

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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Threading;
 
namespace WindowsFormsApplication1
{
        public delegate void TextDelegate(string str);
 
    public partial class Form1 : Form
    {
 
        // внешний процесс
        public Process Proc;
        // поток выполнения процесса
        public Thread Thr;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void AddText(string str)
        {
            // в консоли выводится просто \n
            // для сохранения перевода строки добавляем \r
            richTextBox1.Text += str + "\r";
        }
 
        private void ExternalProcess()
        {
            // создаем внешний процесс, настраиваем его свойства
            Proc = new Process();
            Proc.StartInfo.CreateNoWindow = false;
            Proc.StartInfo.UseShellExecute = false;
            Proc.StartInfo.RedirectStandardOutput = true;
            Proc.StartInfo.FileName = @"D:\srcds.exe";
            Proc.StartInfo.Arguments = @"-console";
            // запускаем внешний процесс
            Proc.Start();
            // читаем его вывод и дописываем в текстбокс
            var del = new TextDelegate(AddText);
            var buf = new char[256];
            while (!Proc.HasExited)
            {
                var len = Proc.StandardOutput.Read(buf, 0, buf.Length);
                var str = new string(buf, 0, len);
                // для работы между потоками нужно использовать делегат
                richTextBox1.Invoke(del, str);
                System.Threading.Thread.Sleep(10);
            }
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            // убиваем поток при закрытии формы
            Thr.Abort();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            // создаем новый поток выполнения внешнего процесса
            Thr = new Thread(new ThreadStart(ExternalProcess));
            Thr.Start();
        }
    }
}
Выводит это: CTextConsoleWin32::GetLine: !GetNumberOfConsoleInputEvent

В чем может быть проблема ?

Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2012, 14:46
Ответы с готовыми решениями:

Как перехватывать поток error из консоли?
Добрый день. Как в консольном приложении перенаправить вывод потока ошибок в свою процедуру?...

RegisterHotKey: как правильно перехватывать нажатие клавиши?
Здравствуйте. Проблема в следующем: Использую RegisterHotKey для ловли глобальной ловли клавиш. Все...

Как записать в массив данные из *.TXT и и правильно рассортировать данные по ячейкам массива?
файл index.php <?php $site = (file('text.txt')); в файле text.txt находится: xxxxxx.ru...

Как правильно сделать и вызвать метод в консоли?
Здравствуйте!Я написал код,но как оказалась мне нужно было сделать как метод и потом просто...

1
51 / 51 / 7
Регистрация: 23.01.2012
Сообщений: 449
05.05.2012, 14:47  [ТС] 2
Вот та самая ошибка
Миниатюры
Как правильно перехватывать данные из консоли  
0
05.05.2012, 14:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2012, 14:47
Помогаю со студенческими работами здесь

Как считать данные с консоли?
Например, у меня выполняется в консоли команда ipconfig и мне нужно считать то что было выведено в...

Как правильно написать код для выполнения команды в консоли PowerShell?
Добрый день! Пытаюсь выполнить эту команду в консоли PowerShell - ошибка. Та же команда в cmd -...

Как получать данные из MySQL в таблицу в консоли
В консольном приложении я могу добавлять записи в MySQL таблицу. Однако получить данные (всю...

Как сохранить данные из консоли C# в память компьютера?
Всем привет! У меня возникла такая проблема. Как сохранить данные из консольного приложения (не...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru