Как создать службу предварительного завершения работы окна с помощью C# .NET?
Привет,
Я хочу запустить систему предварительного завершения работы exe с помощью службы windows на c#.
Но как это может быть возможно, когда пользователь нажимает на кнопку shutdown и сначала запускает службу или exe перед выключением.
Я не хочу выключаться перед запуском exe.
Пожалуйста, помогите мне.
заранее спасибо.
Анкит Агарвал
инженер-программист
Что я уже пробовал:
Timer timer1 = new Timer(); protected override void OnStart(string[] args) { try { //Debugger.Break(); TraceService("Start Service" + " " + DateTime.Now.ToString()); //timer1.Interval = 1000; timer1.Elapsed += new ElapsedEventHandler(OnElapsedTime); timer1.Enabled = true; //Debugger.Break(); } catch (Exception ex) { TraceService("Error: " + ex); //EventLog.WriteEntry("Error: " + ex.Message); } } private void OnElapsedTime(object source, ElapsedEventArgs e) { try { //timer1.Stop(); //Debugger.Break(); timer1.Enabled = false; TraceService("Another entry at" + " " + DateTime.Now); //TraceService("System shutdown Sucessfully" + " " + DateTime.Now.ToString()); timer1.Enabled = true; //WindowsServiceSchedular(timer1); } catch (Exception ex) { EventLog.WriteEntry("Error: " + ex.Message); TraceService("Error: " + ex); } } private void TraceService(string content) { try { if (!Directory.Exists(@"C:\SystemShutdown\SystemShutdownLogFile")) Directory.CreateDirectory(@"C:\SystemShutdown\SystemShutdownLogFile"); FileStream fs = new FileStream(@"C:\SystemShutdown\SystemShutdownService.Txt", FileMode.OpenOrCreate, FileAccess.ReadWrite); StreamWriter sw = new StreamWriter(fs); sw.BaseStream.Seek(0, SeekOrigin.End); sw.WriteLine(content); sw.Flush(); sw.Close(); } catch (Exception ex) { EventLog.WriteEntry("Error: " + ex.Message); } } protected override void OnShutdown() { TraceService("System shutdown"); //I want to run exe in this function but firstly message is not coming when i am shutting down the computer. base.OnShutdown(); } protected override void OnCustomCommand(int command) { base.OnCustomCommand(command); } protected override void OnStop() { timer1.Stop(); TraceService("Stop Service"); }