Как пишутся службы 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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д