Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2018, 09:05   #1
sserrgeey
Пользователь
 
Регистрация: 07.11.2013
Сообщений: 12
По умолчанию Запуск приложения в приложении-сервисе - C#

Здравствуйте, у меня такая проблема:
Есть некоторое приложение которое открывается в виде консоли и что-то в неё пишет при необходимости (на подобии моментальных логов на экране)
Я хочу что бы это приложение тихонько работало на запуске компьютера (варианты с Silent autorun пожалуйста не предлагать-не интересно и не добавляет новых знаний в программировании. Да и к тому же у меня не поучилось его втихую запускать командой)
Я написал приложение-сервис которое запускает обычное приложение на запуске, но у меня не получается читать поток сообщений из запускаемого приложения(

Код:
protected override void OnStart(string[] arguments)
        {
            private Logger _logger = new Logger();
            Thread loggerThread = new Thread(_logger.Start);
            loggerThread.Start();
            Process pr = new Process {StartInfo = {FileName = "C:\\LServer.exe"}};
            pr.StartInfo.UseShellExecute = false;
            pr.StartInfo.RedirectStandardOutput = true;
            pr.OutputDataReceived += (sender, eventArgs) =>
            {
                _logger.RecordEntry("Some data received");
                _logger.RecordEntry(eventArgs.Data.ToString());
                _logger.RecordEntry(eventArgs.ToString());
                _logger.RecordEntry(sender.ToString());
            };
            pr.ErrorDataReceived += (sender, args) =>
            {
                _logger.RecordEntry(args.Data.ToString());
                _logger.RecordEntry(args.ToString());
                _logger.RecordEntry(sender.ToString());
            };
            pr.Disposed += (sender, args) =>
            {
                _logger.RecordEntry(args.ToString());
                _logger.RecordEntry(sender.ToString());
            };
}
к сожалению в лог ничего не пишется(
в лог пишется только дата и всё(
Вот код, записывающий логи

Код:
class Logger{
        public void RecordEntry(string message)
        {
            using (StreamWriter writer = new StreamWriter("C:\\LServerLog.txt", true))
            {
                writer.WriteLine(string.Format("{0} {1}",
                    DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss"), message));
                writer.Flush();
            }
        }
}
сервис создавал вот по этому примеру
https://metanit.com/sharp/tutorial/21.1.php

Подскажите пожалуйста как заставить приложение записывать логи...

Последний раз редактировалось Аватар; 11.01.2018 в 09:07.
sserrgeey вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск приложения ser70 Java Мобильная разработка (Android) 2 29.11.2016 19:19
Запуск приложения aleks2377 Работа с сетью в Delphi 2 17.02.2016 12:42
Запуск браузера в приложении MAcK Общие вопросы .NET 7 07.04.2009 06:07
Запуск приложения Zloy_Doomer Общие вопросы Delphi 2 10.10.2008 13:47
Запуск приложения Артэс Общие вопросы C/C++ 2 07.06.2008 17:38