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
Warum musst du wissen, ob ein Programm gestartet wird. Ruf doch einfach für deinen Taskmanager jede Sekunde eine Liste aller Prozesse ab.
sbertl
Jo, das würde natürlich auch gehen, aber ich will das ganze wirklich selber programmieren ohne "Aus dem Task-Manager zu klauen".
MfG
Wieso denn "aus dem Taskmanager klauen":
System.Diagnostics.Process[]prozesse;
prozesse = System.Diagnostics.Process.GetProcesses();
Warum willst du denn das Rad neu erfinden 😁
sbertl
Achso jetzt versteh ich was du meinst, aber gibts das ganze auch mit Tasks anstatt den Prozessen?
MfG
Ich würds so machen:
if(prozesse[i].MainWindowTitle != "")
isTask = true;
else
isTask = false;
sbertl