Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Problem mit Eventlogs!
Narrow
myCSharp.de - Member



Dabei seit:
Beiträge: 26
Herkunft: Österreich

Themenstarter:

Problem mit Eventlogs!

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
sbertl000
myCSharp.de - Member

Avatar #avatar-2350.png


Dabei seit:
Beiträge: 823
Herkunft: Wien

beantworten | zitieren | melden

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

sbertl
private Nachricht | Beiträge des Benutzers
Narrow
myCSharp.de - Member



Dabei seit:
Beiträge: 26
Herkunft: Österreich

Themenstarter:

beantworten | zitieren | melden

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

MfG
private Nachricht | Beiträge des Benutzers
sbertl000
myCSharp.de - Member

Avatar #avatar-2350.png


Dabei seit:
Beiträge: 823
Herkunft: Wien

beantworten | zitieren | melden

Wieso denn "aus dem Taskmanager klauen":

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

Warum willst du denn das Rad neu erfinden

sbertl
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von sbertl000 am .
private Nachricht | Beiträge des Benutzers
Narrow
myCSharp.de - Member



Dabei seit:
Beiträge: 26
Herkunft: Österreich

Themenstarter:

beantworten | zitieren | melden

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

MfG
private Nachricht | Beiträge des Benutzers
sbertl000
myCSharp.de - Member

Avatar #avatar-2350.png


Dabei seit:
Beiträge: 823
Herkunft: Wien

beantworten | zitieren | melden

Ich würds so machen:


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

sbertl
private Nachricht | Beiträge des Benutzers
Borg
myCSharp.de - Member



Dabei seit:
Beiträge: 1548
Herkunft: Berlin, Germany

beantworten | zitieren | melden

Process.Threads
private Nachricht | Beiträge des Benutzers