Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 11.01.2018, 10:05   #1
sserrgeey
Пользователь
 
Регистрация: 07.11.2013
Сообщений: 12
Репутация: 10
По умолчанию Запуск приложения в приложении-сервисе - 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 в 10:07.
sserrgeey вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск приложения ser70 Java Мобильная разработка (Android) 2 29.11.2016 20:19
Запуск приложения aleks2377 Работа с сетью в Delphi 2 17.02.2016 13: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


08:45.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru