Entwickler-Ecke

Freeware Projekte - ETS - Der ExeTimeSaver #30


Regan - Sa 02.06.07 13:59
Titel: ETS - Der ExeTimeSaver #30
ETS - Der ExeTimeSaver


ETS ist ein Programm, mit dem man die Laufzeit von vorher eingestellten Programmen dokumentieren kann. Das kann zum Beispiel bei Spielen interessant sein. Auch wird bei 98% aller Programmen der Speicherbedarf angegeben. Das Programm dokumentiert des Weiteren seine eigene Laufzeit und man kann den vorhandenen und freien RAM einsehen. Daneben wird der maximale und aktuelle Speicherverbrauch einer Anwendung angegeben. Dieser wird protokolliert und kann auf Wunsch für die letzten 12 Stunden Laufzeit eingesehen werden.

Das Programm wird ohne Installer geliefert. Es werden im Anwendungsdatenordner Daten abgelegt. Es wird nur eine Datei mitgeliefert. Diese befindet sich direkt in dem Archiv (also ohne Unterordner).

Changelog powered by DevProject Manager [http://www.gaijin.at/dldevproject.php]:

Version #30:
[+] Laufende Programme können hinzugefügt werden
[+] Maximale Auslastung
[+] Speicherauslastung der letzten 24 h wird für jedes Programm minutengenau aufgezeichnet
[*] Performance deutlich verbessert
[*] RAM-Anzeige modifiziert
[*] Statistik modifiziert
[*] Symbolik konsistenter gemacht.

Version #29:
[*] "Inaktiv" wird bei nicht laufenden Programmen angezeigt
[*] Nicht existierende Programme werden nicht entfernt.
[*] RAM- Auslastung korrigiert (2 GB Grenze geknackt)
[-] Division durch Null Error

Version #28:
[*] Buttons werden deaktiviert, falls nicht auswählbar
[*] Fehler in der Darstellung der Statistik behoben
[*] Statistikhinweise überarbeitet

Version #27:
[i] Erste Version


Wünsche/Anregungen/Kritik erwünscht.

MfG
Regan


Chryzler - Sa 02.06.07 14:10

Und für was braucht man das? Ich meine, ich kann jetzt nicht wirklich einen Sinn erkennen. :nixweiss:


Regan - Sa 02.06.07 18:19

Das braucht man dafür, wenn man wissen will, wie lange man eine Anwendung oder Windows laufen hat.


Regan - So 11.05.08 13:42

Hy,

ich habe gerade eine neue Version hochgeladen. Diese unterstützt endlos viele Anwendungen, die überwacht werden. Die Überwachnung wurde in Threads ausgelagert und beinhaltet auf Wunsch auch eine Statistikfunktion.
Download wie immer im ersten Post.
Hiermit möchte ich auch nochmals Silas für seine Unit FastIniFiles danken.
Wie immer freue ich mich über Wünsche, Anregungen und Kritik.

MfG
Regan


huuuuuh - So 11.05.08 14:04

wozu brauch ich wissen wie lange ich ein programm ausgeführt hab?
BigBrother is watching you :shock:


Jakob_Ullmann - So 11.05.08 14:10

Könntest du vielleicht einen Screenshot anhängen? Muss ich deinem Programm erst mitteilen, dass ich eine Anwendung starte/schließe (also praktisch ein einfacher Counter) oder bemerkt das dein Programm automatisch (nur so wäre es IMHO überhaupt ein wenig sinnvoll)?


Silas - So 11.05.08 15:06

Die Idee an sich ist schonmal recht gut. :zustimm:

Ein paar Vorschläge:

Edit:
user profile iconRegan hat folgendes geschrieben:
Hiermit möchte ich auch nochmals Silas für seine Unit FastIniFiles danken.
:flehan:


Regan - So 11.05.08 17:03

user profile iconhuuuuuh hat folgendes geschrieben:
wozu brauch ich wissen wie lange ich ein programm ausgeführt hab?

Um zum Beispiel festzustellen, wie lange du Windows laufen hast oder wie lange du Spiele spielst.
user profile iconhuuuuuh hat folgendes geschrieben:
BigBrother is watching you :shock:

Du kannst es ja auch als Quickstarter nutzen.

user profile iconJakob_Ullmann hat folgendes geschrieben:
Könntest du vielleicht einen Screenshot anhängen?

Hab ich :wink: .
user profile iconJakob_Ullmann hat folgendes geschrieben:
Muss ich deinem Programm erst mitteilen, dass ich eine Anwendung starte/schließe (also praktisch ein einfacher Counter) oder bemerkt das dein Programm automatisch (nur so wäre es IMHO überhaupt ein wenig sinnvoll)?

Es bemerkt automatisch, wenn der Prozess läuft und startet die Aufzeichnung.

user profile iconSilas hat folgendes geschrieben:
Die Idee an sich ist schonmal recht gut. :zustimm:

Danke.
user profile iconSilas hat folgendes geschrieben:
Ein paar Vorschläge:
  • Einen wirklich praktischen Nutzen hätte dein Programm, wenn es die maximale / durchschnittliche CPU- / Speicherauslastung anzeigen würde. Dann könnte man sich schnell einen Überblick über die Ressourcenfresser verschaffen.

Muss ich mal schauen, ob ich das einbaue. Das Programm frisst schon so viel zu viel Speicher :wink: .
user profile iconSilas hat folgendes geschrieben:
  • Man sollte beim erstellen eines Eintrags die Werte direkt bearbeiten können und als Default-Anzeigename sollte der Dateiname der EXE ohne '.exe' verwendet werden.

Wird geändert.
user profile iconSilas hat folgendes geschrieben:
  • Es sollte mit poScreenCenter gestartet werden ;)

Geändert.
user profile iconSilas hat folgendes geschrieben:
  • Man sollte die Fenstergröße ändern können

Geändert.
user profile iconSilas hat folgendes geschrieben:
  • Nimm für die Modalfenster bsDialog, sonst sieht's so gedätscht aus. ;)

Geändert.
user profile iconSilas hat folgendes geschrieben:
  • Beim einem "Doppelstartversuch" sollte statt der Meldung das Programmfenster wieder angezeigt werden.

Muss ich mal schauen, wie ich das einbaue.
user profile iconSilas hat folgendes geschrieben:
  • Ein Button zum Hinzufügen aller momentan laufenden Prozesse sowie die Option, alle jemals laufenden Prozesse zu überwachen, wäre gut (evtl. mit Filter/Blacklist).

Wie meinst du das mit "jemals laufende Prozesse"? Mein Programm weiß doch nicht, außer es speichert die Prozesse, was am Vortag lief :? .
user profile iconSilas hat folgendes geschrieben:
  • Ein Bug: Während ein zu messendes Programm läuft, bekommt man beim Versuch, das Statistikfenster zu schließen, eine "ungültige Zeigeroperation" geworfen.

Kann ich nicht reproduzieren. Könntest du mir vielleicht nochmal die Reihenfolge der Klicks sagen?
user profile iconSilas hat folgendes geschrieben:
Edit:
user profile iconRegan hat folgendes geschrieben:
Hiermit möchte ich auch nochmals Silas für seine Unit FastIniFiles danken.
:flehan:

:wink: .


Silas - So 11.05.08 18:08

user profile iconRegan hat folgendes geschrieben:
Die Überwachnung wurde in Threads ausgelagert.
user profile iconRegan hat folgendes geschrieben:
Muss ich mal schauen, ob ich das einbaue. Das Programm frisst schon so viel zu viel Speicher :wink: .
kA, wie du das implementiert hast, aber warum hast du das mit Threads gelöst? Ein Timer auf 2-3 Sekunden wäre resourcenschonend und auf 1-2 Sekunden Messfehler kommt es doch eh nicht an, oder?

user profile iconRegan hat folgendes geschrieben:
Wie meinst du das mit "jemals laufende Prozesse"? Mein Programm weiß doch nicht, außer es speichert die Prozesse, was am Vortag lief :? .
Da habe ich mich ein wenig ungünstig ausgedrückt, ich meinte damit, dass dein Programm beim überwachen der Prozessliste sich alle jemals gelaufenen merkt, um sie zählen zu können.

user profile iconRegan hat folgendes geschrieben:
user profile iconSilas hat folgendes geschrieben:
  • Ein Bug: Während ein zu messendes Programm läuft, bekommt man beim Versuch, das Statistikfenster zu schließen, eine "ungültige Zeigeroperation" geworfen.
Kann ich nicht reproduzieren. Könntest du mir vielleicht nochmal die Reihenfolge der Klicks sagen?
Oh, hab gerade gemerkt dass meine Beschreibung so nicht ganz stimmt: Der Bug tritt auf, während ein Programm läuft, das über dein Programm gestartet wurde (also über "Ausführen").


Regan - So 11.05.08 20:19

user profile iconSilas hat folgendes geschrieben:
user profile iconRegan hat folgendes geschrieben:
Die Überwachnung wurde in Threads ausgelagert.
user profile iconRegan hat folgendes geschrieben:
Muss ich mal schauen, ob ich das einbaue. Das Programm frisst schon so viel zu viel Speicher :wink: .
kA, wie du das implementiert hast, aber warum hast du das mit Threads gelöst? Ein Timer auf 2-3 Sekunden wäre resourcenschonend und auf 1-2 Sekunden Messfehler kommt es doch eh nicht an, oder?

Naja. Messfehler sollten eigentlich nicht sein. Und die Threadvariante ist nach meinen Messungen wesentlich schneller und verbraucht weniger Prozesserleistung.
user profile iconSilas hat folgendes geschrieben:
user profile iconRegan hat folgendes geschrieben:
Wie meinst du das mit "jemals laufende Prozesse"? Mein Programm weiß doch nicht, außer es speichert die Prozesse, was am Vortag lief :? .
Da habe ich mich ein wenig ungünstig ausgedrückt, ich meinte damit, dass dein Programm beim überwachen der Prozessliste sich alle jemals gelaufenen merkt, um sie zählen zu können.

Aber du weißt schon, dass dadurch das Programm sehr langsam wird. Deshalb werde ich mir das nochmals gründlich überlegen müssen. Das Programm ist eigentlich nur dazu gedacht, dass man sieht, wie lange man Windows laufen hat und wie oft und lange man einige Applikationen nutzt.
user profile iconSilas hat folgendes geschrieben:
user profile iconRegan hat folgendes geschrieben:
user profile iconSilas hat folgendes geschrieben:
  • Ein Bug: Während ein zu messendes Programm läuft, bekommt man beim Versuch, das Statistikfenster zu schließen, eine "ungültige Zeigeroperation" geworfen.
Kann ich nicht reproduzieren. Könntest du mir vielleicht nochmal die Reihenfolge der Klicks sagen?
Oh, hab gerade gemerkt dass meine Beschreibung so nicht ganz stimmt: Der Bug tritt auf, während ein Programm läuft, das über dein Programm gestartet wurde (also über "Ausführen").

Kann ich reproduzieren und sollte gefixt sein.

Update: 3.1: Fehlerbehebung und Designzeugs.


Silas - So 11.05.08 20:31

user profile iconRegan hat folgendes geschrieben:
Aber du weißt schon, dass dadurch das Programm sehr langsam wird.
Timer verbrauchen (zumindest in allen meinen bisherigen Programmen) auch bei theoretischen 1 ms Intervall sowieso so gut wie keine Prozessorzeit, und ich denke 1 Sekunde Messgenauigkeit langen voll und ganz. Du liest die Prozessliste für die Überprüfung doch sowieso, oder? Und das Aktualisieren der Prozessorzeit/auslastung darf ruhig niedriger getaktet sein.

user profile iconRegan hat folgendes geschrieben:
Das Programm ist eigentlich nur dazu gedacht, dass man sieht, wie lange man Windows laufen hat und wie oft und lange man einige Applikationen nutzt.
Ja, aber diese Features würden das Tool wesentlich interessanter machen, sieh dir doch mal das restliche Feedback an ;)


huuuuuh - So 11.05.08 21:27

der timer geht bei werten <50ms automatisch auf 50ms
ein intervall kleiner als 50ms geht also nich


Silas - Mo 12.05.08 06:33

user profile iconSilas hat folgendes geschrieben:
Timer verbrauchen auch bei theoretischen 1 ms Intervall sowieso so gut wie keine Prozessorzeit.

user profile iconhuuuuuh hat folgendes geschrieben:
der timer geht bei werten <50ms automatisch auf 50ms

Stimmt zum Teil. Bei Werten < 25 ms wird der Windows-Timer unzuverlässig, theoretisch gibt es aber keine Untergrenze.


Regan - Mo 12.05.08 15:38

user profile iconSilas hat folgendes geschrieben:
Du liest die Prozessliste für die Überprüfung doch sowieso, oder?

Nein :wink: .
user profile iconSilas hat folgendes geschrieben:
Und das Aktualisieren der Prozessorzeit/auslastung darf ruhig niedriger getaktet sein.

OK. Du hast mich überzeugt. Aber wie komme ich von meiner Exedatei an die Speicherauslastung? Hast du da vielleicht einen Link?


Jakob_Ullmann - Mo 12.05.08 15:45

Such mal im Forum. Ich hab auch mal danach gesucht und was gefunden. :roll: Allerdings habe ich es nicht verwendet, weil es viel zu kompliziert war. Und Code, den ich nicht verstehe, baue ich nur ungern irgendwie ein (außer vielleicht SynEdit oder sowas), und erst recht nicht, wenn das ganze Programm daraus besteht. :wink:


Silas - Mo 12.05.08 20:52

user profile iconRegan hat folgendes geschrieben:
Aber wie komme ich von meiner Exedatei an die Speicherauslastung? Hast du da vielleicht einen Link?

In der psapi.dll gibt es eine Funktion namens GetProcessMemoryInfo. Die wirst du wahrscheinlich selber einbinden müssen, weil Delphi sie nicht in der Windows.pas hat. Google einfach mal danach. ;)


Regan - Mi 14.05.08 17:59

user profile iconSilas hat folgendes geschrieben:
user profile iconRegan hat folgendes geschrieben:
Aber wie komme ich von meiner Exedatei an die Speicherauslastung? Hast du da vielleicht einen Link?

In der psapi.dll gibt es eine Funktion namens GetProcessMemoryInfo. Die wirst du wahrscheinlich selber einbinden müssen, weil Delphi sie nicht in der Windows.pas hat. Google einfach mal danach. ;)

OK. Ich habs jetzt eingebaut, allerdings noch keine neue Version hochegladen.
Bezüglich der statistischen Erfassung der Daten: Wie hast du dir das vorgestellt? Du hast ja etwas von maximalen und Durchschnitswert gesagt. Soll das ganze irgendwie gespeichert werden?


Jakob_Ullmann - Mi 14.05.08 18:44

Nun um zu wissen, was das meist ausgeführte Programm ist, brauch ich ja nur mal ins Startmenü von WinXP gucken und ich stelle fest, dass es Firefox, Delphi 7, Delphi 5, Word, Photoshop und Excel sind. :wink: Ne, aber warum speicherst du die Daten nicht in einer Datenbank oder Textdatei und stellst das dann als Liniendiagramm dar? Sowas könntest du auch mit TChart realisieren, wenn du keine Lust hast, dich selbst um die Diagramme zu kümmern (wobei das ja nicht so schwer sein dürfte). :wink:


Regan - Mi 14.05.08 18:47

user profile iconJakob_Ullmann hat folgendes geschrieben:
Nun um zu wissen, was das meist ausgeführte Programm ist, brauch ich ja nur mal ins Startmenü von WinXP gucken und ich stelle fest, dass es Firefox, Delphi 7, Delphi 5, Word, Photoshop und Excel sind. :wink:

Ich will aber die Programme haben, die am längsten laufen :wink: .
user profile iconJakob_Ullmann hat folgendes geschrieben:
Ne, aber warum speicherst du die Daten nicht in einer Datenbank oder Textdatei und stellst das dann als Liniendiagramm dar? Sowas könntest du auch mit TChart realisieren, wenn du keine Lust hast, dich selbst um die Diagramme zu kümmern (wobei das ja nicht so schwer sein dürfte). :wink:

Hast du dir das Programm mal runtergeladen? Anscheinend nicht :( .


Silas - Mi 14.05.08 18:50

user profile iconRegan hat folgendes geschrieben:
Wie hast du dir das vorgestellt? Du hast ja etwas von maximalen und Durchschnitswert gesagt. Soll das ganze irgendwie gespeichert werden?

Ja, ich dachte, dass du es einfach so wie die Laufzeit des Programms mitspeicherst.

Der Maximalwert sollte ja klar sein, du überprüfst einfach, ob er größer als der letzte Maximalwert war, und speicherst immer den letzten.

Den Durchschnittswert berechnest du dann einfach mit

Delphi-Quelltext
1:
DurchschnittNeu = ( DurchschnittAlt * AnzahlMessungenBisher + NeuerWert ) / AnzahlMessungenGesamt                    
. Hier genügt es also auch, wenn du den letzten Durchschnittswert und die Anzahl Messungen speicherst.

Edit: Für den Durchschnitt würde ich dann natürlich ein Float nehmen ;)


Regan - Mi 14.05.08 18:53

user profile iconSilas hat folgendes geschrieben:
user profile iconRegan hat folgendes geschrieben:
Wie hast du dir das vorgestellt? Du hast ja etwas von maximalen und Durchschnitswert gesagt. Soll das ganze irgendwie gespeichert werden?

Ja, ich dachte, dass du es einfach so wie die Laufzeit des Programms mitspeicherst.

Der Maximalwert sollte ja klar sein, du überprüfst einfach, ob er größer als der letzte Maximalwert war, und speicherst immer den letzten.

Den Durchschnittswert berechnest du dann einfach mit

Delphi-Quelltext
1:
DurchschnittNeu = ( DurchschnittAlt * AnzahlMessungenBisher + NeuerWert ) / AnzahlMessungenGesamt                    
. Hier genügt es also auch, wenn du den letzten Durchschnittswert und die Anzahl Messungen speicherst.

Edit: Für den Durchschnitt würde ich dann natürlich ein Float nehmen ;)

OK und würdest irgendeine statistische Auswertung in einem Diagramm machen oder ist das eher nicht sinnvoll?


Silas - Mi 14.05.08 18:56

Könntest du machen, wäre in meinen Augen aber nicht so sinnvoll, weil das Diagramm nicht besonders viel Aussagekraft hätte (Die Auslastung ist meistens eh gleich und wenn nicht, hängt das von äußeren Umständen ab).


Regan - Mi 14.05.08 18:59

OK. Dann setzte ich mich jetzt mal an die Umsetzung :wink: .


Regan - Mi 21.05.08 18:49

Ich schiebe hier mal nach einer Woche ein kleines Zwischenrelease ein: 3.1.1
Neben der Speicheranzeige kann jetzt auch die ganze Prozessliste eingespeist werden :wink: .

Download im ersten Post, über Wünsche, Anregungen und Kritik freue ich mich natürlich :wink: .


Silas - Mi 21.05.08 19:21

N'Abend,

was ist denn bei dem Release los? :gruebel:


Regan - Mi 21.05.08 20:13

user profile iconSilas hat folgendes geschrieben:
N'Abend,

was ist denn bei dem Release los? :gruebel:

Eigentlich nichts :P .
user profile iconSilas hat folgendes geschrieben:
  • Der Speicherverbrauch von Notepad ist immer 0k

Kann ich nicht reproduzieren. Bei mir ist es immer ein Wert.
user profile iconSilas hat folgendes geschrieben:
  • Wenn ich ein Item hinzufügen möchte und auf OK klicke, wird's nicht hinzugefügt

Gefixt.
user profile iconSilas hat folgendes geschrieben:
  • Beim Zeichnen des Statistik-Diagramms wirft er mir eine EDivByZero

Puh das wird schon schwieriger. Vielleicht kannst du mal den Stats Ordner im Anwendungsdatenverzeichnis/Regan/ETS/ löschen.
Wenn das nicht hilft, dann werd ich dir mal ein Spezialbuild machen, aber eig sollte es funktionieren :gruebel: . Welches XP SP hast du?

Version 3.1.2: Fehler beim Hinzufügen gefixt.


Silas - Mi 21.05.08 20:36

user profile iconRegan hat folgendes geschrieben:
Welches XP SP hast du?
Service Pack 3, bin mir aber nicht sicher obs die Final ist.

Das mit der Auslastung funktioniert nur, wenn das Programm geöffnet ist, wärend ich's hinzufüg. Wie oft aktualisierst du die Anzeige denn? Nach dem Schließen bleibt die Auslastung nämlich bestehen.

Vielleicht wäre ein Always-On-Top-Button noch ganz gut (zur Überwachung).

Edit: @EDivByZero: Funktioniert nach dem löschen der Stats.


Regan - Do 22.05.08 08:04

user profile iconSilas hat folgendes geschrieben:
user profile iconRegan hat folgendes geschrieben:
Welches XP SP hast du?
Service Pack 3, bin mir aber nicht sicher obs die Final ist.

Daran kanns schonmal nicht liegen. Den hab ich auch.
user profile iconSilas hat folgendes geschrieben:
Das mit der Auslastung funktioniert nur, wenn das Programm geöffnet ist, wärend ich's hinzufüg. Wie oft aktualisierst du die Anzeige denn? Nach dem Schließen bleibt die Auslastung nämlich bestehen.

Ich: aller 5 Sekunden. Ich weiß ja nicht welchen Wert du in den Einstellungen eingestellt hast!? (Ich glaub, jetzt weiß ich, woran es liegt :wink: )
user profile iconSilas hat folgendes geschrieben:
Vielleicht wäre ein Always-On-Top-Button noch ganz gut (zur Überwachung).

Steht auf der ToDo.
user profile iconSilas hat folgendes geschrieben:
Edit: @EDivByZero: Funktioniert nach dem löschen der Stats.

Schön.


Silas - Do 22.05.08 08:26

user profile iconRegan hat folgendes geschrieben:
Ich weiß ja nicht welchen Wert du in den Einstellungen eingestellt hast!?

Ah, da kann man ja was einstellen (:oops:). Er verträgt keine 0 ;).

Vielleicht könntest du die Intervalleinheit auf Millisekunden ändern (weil es ja Leute geben könnte (mich z.B. ;) ), die alle halbe Sekunde aktualisieren möchten.


Regan - Do 22.05.08 08:33

user profile iconSilas hat folgendes geschrieben:
user profile iconRegan hat folgendes geschrieben:
Ich weiß ja nicht welchen Wert du in den Einstellungen eingestellt hast!?

Ah, da kann man ja was einstellen (:oops:). Er verträgt keine 0 ;).

Vielleicht könntest du die Intervalleinheit auf Millisekunden ändern (weil es ja Leute geben könnte (mich z.B. ;) ), die alle halbe Sekunde aktualisieren möchten.

Hab ich mir mit aufgeschrieben.


Silas - Do 22.05.08 08:39

Ah, Moment, beim Bearbeiten von einem Eintrag funktioniert das Übernehmen noch nicht.

Edit: Man kann kein Programm löschen, das läuft. Das könnte manchmal u.U. aber erwünscht sein (bei Systemprozessen z.B.).


Regan - Fr 23.05.08 16:39

user profile iconSilas hat folgendes geschrieben:
Ah, Moment, beim Bearbeiten von einem Eintrag funktioniert das Übernehmen noch nicht.

Gefixed.
user profile iconSilas hat folgendes geschrieben:
Edit: Man kann kein Programm löschen, das läuft. Das könnte manchmal u.U. aber erwünscht sein (bei Systemprozessen z.B.).

Kann ich nicht reproduzieren. Kannst du nochmal genau beschreiben, wie du das gemacht hast/was du machen wolltest.

Version 3.1.3:
- AlwaysOnTop
- Bug beim Bearbeiten gelöscht :wink: .


Silas - Fr 23.05.08 16:50

user profile iconRegan hat folgendes geschrieben:
user profile iconSilas hat folgendes geschrieben:
Edit: Man kann kein Programm löschen, das läuft. Das könnte manchmal u.U. aber erwünscht sein (bei Systemprozessen z.B.).

Kann ich nicht reproduzieren. Kannst du nochmal genau beschreiben, wie du das gemacht hast/was du machen wolltest.

Hat sich erledigt, funktioniert jetzt nach dem Löschen der Anwendungsdaten.

Ein etwas eigenartiger Fehler (desmal bin ich mir auch ziemlich sicher, dass er einer ist ;) ): Bei Unreal Tournament 2004 (das einzige wo ichs bis jetzt beobachtet hab) ist die Speicherauslastung grundsätzlich 0, auch nach dem neu-Hinzufügen. Der Zeitzähler funktioniert dabei aber (und beide Funktionen für andre Programme auch).


delphi10 - Fr 23.05.08 18:06

user profile iconRegan hat folgendes geschrieben:
user profile iconSilas hat folgendes geschrieben:
Du liest die Prozessliste für die Überprüfung doch sowieso, oder?

user profile iconSilas hat folgendes geschrieben:
Und das Aktualisieren der Prozessorzeit/auslastung darf ruhig niedriger getaktet sein.

OK. Du hast mich überzeugt. Aber wie komme ich von meiner Exedatei an die Speicherauslastung? Hast du da vielleicht einen Link?


Etwas so:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
   Procedure TForm3.GetMemP;
   var MS: TMemoryStatus;
   begin
     GlobalMemoryStatus(MS);
     // Wirklich vorhandener RAM in KB
     Label1X.Caption := FormatFloat('RAM vorhanden '+'#,###" KB"', MS.dwTotalPhys / 1024);
     // Freier RAM in KB
     Label1Y.Caption := FormatFloat('RAM verfügbar '+'#,###" KB"', MS.dwAvailPhys / 1024);
   end;


Funktioniert mit W2K und XP SP2, Vista ??
Gruß Delphi10


Regan - Di 17.02.09 14:51

Ich habe auf die Version #27 aktuallisiert. Alles weitere im ersten Post.


Regan - Mi 18.02.09 14:10

Ich habe auf die Version #28 aktuallisiert. Alles weitere im ersten Post.


Regan - Fr 20.02.09 16:26

Ich habe auf die Version #29 aktuallisiert. Alles weitere im ersten Post.


Regan - Sa 14.03.09 20:21

Ich habe auf die Version #30 aktuallisiert. Alles weitere im ersten Post.