Laden...

Problem mit Eventlogs!

Erstellt von Narrow vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.749 Views
N
Narrow Themenstarter:in
26 Beiträge seit 2007
vor 16 Jahren
Problem mit Eventlogs!

Hi, ich bin gerade dabei eine art Taskmanager zu programmieren, dazu brauche ich eine Reaktion auf das Starten von Programmen, dazu hat man mir hier schon weiter geholfen, nur habe ich das Problem, dass das Ganze manchmal funktioniert und manchmal ned!?

Der Code sieht so aus:


public Form1()
        {
            InitializeComponent();

            EventLog myLog = new EventLog("Security");
            myLog.EntryWritten += new EntryWrittenEventHandler(myLogWatcher);
            myLog.EnableRaisingEvents = true;

        }

        public void myLogWatcher(object sender, EntryWrittenEventArgs e)
        {
            if (InvokeRequired)
            {
                
                Invoke(new EntryWrittenEventHandler(myLogWatcher),
                    new object[] { sender, e });
            }
            else
            {
                switch (e.Entry.InstanceId)
                {
                    case 592:
                        ...
                        break;
                    case 593:
                        ...
                        break;
                    default:
                        return;
                }
            }
        }

592...ein Programm wurde gestartet
593...ein Programm wurde beendet

manchmal funktionierts und wenn ichs dann ne halbe stunde später nochmal versuche (ohne dass ich was am code geändert habe!) gehts nicht mehr!?

Weiß jemand woran das liegt?

Thx im vorraus Narrow

822 Beiträge seit 2005
vor 16 Jahren

Warum musst du wissen, ob ein Programm gestartet wird. Ruf doch einfach für deinen Taskmanager jede Sekunde eine Liste aller Prozesse ab.

sbertl

N
Narrow Themenstarter:in
26 Beiträge seit 2007
vor 16 Jahren

Jo, das würde natürlich auch gehen, aber ich will das ganze wirklich selber programmieren ohne "Aus dem Task-Manager zu klauen".

MfG

822 Beiträge seit 2005
vor 16 Jahren

Wieso denn "aus dem Taskmanager klauen":

System.Diagnostics.Process[]prozesse;
					prozesse = System.Diagnostics.Process.GetProcesses();

Warum willst du denn das Rad neu erfinden 😁

sbertl

N
Narrow Themenstarter:in
26 Beiträge seit 2007
vor 16 Jahren

Achso jetzt versteh ich was du meinst, aber gibts das ganze auch mit Tasks anstatt den Prozessen?

MfG

822 Beiträge seit 2005
vor 16 Jahren

Ich würds so machen:


if(prozesse[i].MainWindowTitle != "")
   isTask = true;
else
   isTask = false;

sbertl

B
1.529 Beiträge seit 2006
vor 16 Jahren

Process.Threads