Hallo,
ich habe meinen ersten "Dienst" gemacht, der ein bestimmtes Programm
�berwachen soll und wenn es nicht mehr l�uft soll ein anderes Programm
(SendSMS von mir :-) ) gestartet werden und zwar nur ein mal!
Hierzu habe ich zwei Timer und dazugeh�rige Events.
Der erste Timer-Handler pr�ft st�ndig ob das Programm NICHT l�uft. Wenn
nicht dann wird der timer angehalten.
Der zweite Timer pr�ft immer ob das Programm SCHON l�uft. Zus�tzlich pr�ft
es ob der erste Timer gestoppt wurde .... Wenn ja dann macht es ein
Logeintrag.
....Dachte ich ....
Kann mir jemand mit der Logik helfen?
Oder verh�lt es sich bei Diensten irgendwie anders?
Zusammengefasst was passiert: Beende ich das Programm, dann schreibt er mir
das EventLog "Programm is no more running!!!!"
Jedoch wenn ich das Programm wieder starte, dann passiert nix.
Wenn ich das Programm wieder beende ... weiterhin gar nix ...
Ich erlaube mir mal ausz�ge des Sourcecode mitzuschicken....
public class processWatcher: ServiceBase {
protected Timer timer;
protected Timer timer2;
public static void Main() {
ServiceBase.Run(new processWatcher());
}
public processWatcher()
{
CanPauseAndContinue = true;
ServiceName = "processWatcher";
timer = new Timer();
timer.Interval = 1000;
timer.Elapsed += new ElapsedEventHandler(OnTimer);
timer2 = new Timer();
timer2.Interval = 1000;
timer2.Elapsed += new ElapsedEventHandler(OnRestart);
}
... Dann der ganze schmafu mit Service.paused, stoped, OnContinue ...
protected void OnTimer(Object source, ElapsedEventArgs e)
{
Process[] myProcesses = Process.GetProcessesByName("myApplication");
if (myProcesses.Length != 1)
{
EventLog.WriteEntry("Programm is no more running!!!!");
timer.Enabled = false;
Process.Start("sendSMS.exe");
}
}
protected void OnRestart(Object source, ElapsedEventArgs e)
{
Process[] myProcesses = Process.GetProcessesByName("myApplication");
if (myProcesses.Length >= 1 && timer.Enabled == false)
{
EventLog.WriteEntry("Programm is running well!!!!");
timer.Enabled = true;
}
}
Gru� MAnsur
| [dotnetdecsharp] als [email protected] subscribed
| http://www.dotnetgerman.com/archiv/dotnetdecsharp/ = Listenarchiv
| Listenregeln, sowie An- und Abmeldung zu dieser Liste:
| http://www.dotnetgerman.com/listen/dotnetdecsharp.asp