Entwickler-Ecke

Basistechnologien - Zugriff auf das Betriebsystem (Windows)


nobelo - So 29.07.07 09:33
Titel: Zugriff auf das Betriebsystem (Windows)
Hallo,

ich habe vor ne Software zu implementieren, die einfach auf das Betriebssystem zugreifen und abfragen soll ob ein bestimmtes Programm gerade ausgeführt wird. Das Ergebnis soll in einer Tabelle geschrieben werden (mögliche Spalten wären: JA/NEIN,Anfangszeit,Endzeit) in Excel oder Xml.

Hat jemand ein Vorschlag wie das zu realisieren ist?


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am So 29.07.2007 um 11:32


Christian S. - So 29.07.07 11:50

Das hier [http://www.c-sharp-forum.de/viewtopic.php?t=66165] könnte Dir helfen. Damit kannst Du schon mal alle Prozesse auflisten. Wenn Du das in 'nem Timer machst, und schaust, ob der Prozess drin ist, sollte es das tun.

Schöner wäre natürlich, wenn Du keinen Timer bräuchtest, aber ich fürchte, da wirst Du nicht drum rum kommen. :gruebel:


nobelo - Di 31.07.07 08:50

Hallo,

habe mal bisschen implementiert kann aber trotzdem nicht zum laufen bringen. Mit c# und MS visual c# 2005 kenne ich mich wenig aus. Ich starte immer mit "Starten ohne debuggen", funktioniert aber nicht!!

Hier der Code:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
using System;
using System.Diagnostics;

namespace FCL_Buch._System_Diagnostics {

  public class Samples_Prozesse {
      
    public void Prozesse_Liste() {

      // Liste aller laufenden Prozesse
      // Liste der Prozesse holen
      Process[] pp = Process.GetProcesses();

      // Schleife über alle Prozesse
      foreach ( Process p in pp ) {
        FclOutput.PrintOut("------------------------");
        FclOutput.PrintOut(p.Id + ":" + p.ProcessName);
        FclOutput.PrintOut("------------------------");
        if (p.Id != 0) { // Ausnahme für "Idle" (ID=0) !
          FclOutput.PrintOut("Handle Count           :" + p.HandleCount.ToString());
          FclOutput.PrintOut("Main Window Title      :" + p.MainWindowTitle);
          FclOutput.PrintOut("Min Working Set        :" + p.MinWorkingSet.ToString());
          FclOutput.PrintOut("Max Working Set        :" + p.MaxWorkingSet.ToString());
          FclOutput.PrintOut("Paged Memory Size      :" + p.PagedMemorySize.ToString());
          FclOutput.PrintOut("Peak Paged Memory Size :" + p.PeakPagedMemorySize.ToString());
        }
  
      }
    }
  }
}


Moderiert von user profile iconUGrohne: C#-Tags hinzugefügt.


Christian S. - Di 31.07.07 10:01

Und was heisst "funktioniert nicht"? Explodiert der Rechner, gibt's ne Fehlermeldung (wenn ja welche), erhälst Du nicht das erwartete Resultat (welches erwartest Du, welches kommt stattdessen?)?