Как пишутся службы Windows - C#

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста объясните как создать службу! надо срочно сдать к.р. надо реализовать onStart onStop onPause onContinue. Что выполнять будет это служба не имеет смысла. главное чтобы работала!

Решение задачи: «Как пишутся службы Windows»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading;
using System.IO;
 
namespace Plotnikov
{
    public partial class Plotnikov : ServiceBase
    {
        private StreamWriter file;
        private FileSystemWatcher watcher;
        public Plotnikov()
        {
            this.ServiceName = "Plotnikov";
 
            this.CanPauseAndContinue = true;
            this.CanStop = true;
            this.AutoLog = true;
        }
 
 
        public static void Main()
        {
            ServiceBase.Run(new Plotnikov());            
        }
        protected override void OnStart(string[] args)
        {
            start();
 
        }
        public void start()
        {
            try
            {
                //Создание файла для записи изменений в папке
                file = new StreamWriter(new FileStream("D:\\My Service\\Plot_Service.log",
                                            System.IO.FileMode.Append));
                //Запись в файл о старте сервиса
                this.file.WriteLine("Сервис Стартовал в "+ DateTime.Now.ToString(" dd.MM.yyyy HH:mm:ss"));
                this.file.Flush();
                
                watcher = new FileSystemWatcher();
                watcher.Path ="D:\\My Service\\";
                watcher.EnableRaisingEvents = true;
                //Действия над файлами в папке
                watcher.Created += new FileSystemEventHandler(OnCreated);
                watcher.Deleted += new FileSystemEventHandler(OnDeleted);
                watcher.Changed += new FileSystemEventHandler(OnChanged);
                watcher.Renamed += new RenamedEventHandler(OnRenamed);
            }
            catch (Exception ex)
            {
                //Запись в файл о ошибках расширеное описание ошибки
                System.IO.File.AppendAllText("D:\\My Service\\error.log", ex.StackTrace);
            }
            finally { };
        }
        private void OnCreated(object sender, FileSystemEventArgs e)
        {
            //Создание файла
            String output_dir = "D:\\My Service\\";
            String output_file = Path.Combine(output_dir, e.Name);
            this.file.WriteLine("Файл создан: " + output_file + "  Время: " + DateTime.Now.ToString(" dd.MM.yyyy HH:mm:ss"));
            this.file.Flush();
        }
        private void OnDeleted(object sender, FileSystemEventArgs e)
        {
            //Удаление файла
            String output_dir = "D:\\My Service\\";
            String output_file = Path.Combine(output_dir, e.Name);
            this.file.WriteLine("Файл удален: " + output_file + "  Время: " + DateTime.Now.ToString(" dd.MM.yyyy HH:mm:ss"));
            this.file.Flush();
        }
        private void OnChanged(object sender, FileSystemEventArgs e)
        {
            //Изменение файла
            String output_dir = "D:\\My Service\\";
            String output_file = Path.Combine(output_dir, e.Name);
            this.file.WriteLine("Файл изменен: " + output_file + "  Время: " + DateTime.Now.ToString(" dd.MM.yyyy HH:mm:ss"));
            this.file.Flush();
        }
        private void OnRenamed(object sender, FileSystemEventArgs e)
        {
            //Создание файла
            String output_dir = "D:\\My Service\\";
            String output_file = Path.Combine(output_dir, e.Name);
            this.file.WriteLine("Файл переименован: " + output_file + "  Время: " + DateTime.Now.ToString(" dd.MM.yyyy HH:mm:ss"));
            this.file.Flush();
        }
        protected override void OnPause()
        {
            //Запись в файл о приостановке работы сервиса
            this.file.WriteLine("Сервис Приостановлен в " + DateTime.Now.ToString(" dd.MM.yyyy HH:mm:ss"));
            this.file.Flush();
            base.OnPause();
        }
        protected override void OnContinue()
        {
            //Записть в файл о продолжении работы сервиса
            this.file.WriteLine("Сервис Продолжен в " + DateTime.Now.ToString(" dd.MM.yyyy HH:mm:ss"));
            this.file.Flush();
            base.OnContinue();
        }
        protected override void OnStop()
        {
            //Запись в файл о остановке работы сервиса
            this.file.WriteLine("Сервис Остановлен в " + DateTime.Now.ToString(" dd.MM.yyyy HH:mm:ss"));
            this.file.Flush();
            base.OnStop();
        }     
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5
Похожие ответы