AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte CPU-Auslastung
Thema durchsuchen
Ansicht
Themen-Optionen

CPU-Auslastung

Ein Thema von Matze · begonnen am 19. Aug 2003 · letzter Beitrag vom 30. Apr 2007
Antwort Antwort
Seite 1 von 12  1 2311     Letzte »    
Benutzerbild von Matze
Matze
Registriert seit: 7. Jul 2003
Hi!
Ich habe ein kleines Programm geschrieben, das einem die aktuelle CPU-Auslastung anzeigt. (mithilfe dieses Forums. )
Nicht Besonderes.

Ich glaube aber, dass es nur unter Win NT/2000/XP geht, aber getestet habe ich das noch nicht.

Gruß Matze
Angehängte Grafiken
   
Angehängte Dateien
Dateityp: zip project1_182.zip (205,0 KB, 271x aufgerufen)
 
Alexander

 
Turbo Delphi für .NET
 
#2
  Alt 19. Aug 2003, 10:04
Hi,
funktioniert auch soweit ganz gut (unter XP Home getestet.).
Aber ich würde da vielleicht noch eine kleine Funktion einfügen. Und zwar sollte es vielleicht, wenn es nah genug am Bildschirmrand oder anderen Fenstern (das vielleicht nciht unbedingt...) automatisch (als Option) andocken.
Vom Design gefällt mir das kleine Tool sehr!

Aber ich habe noch eine kleine Unit (von Alexey A. Dynnikov), mit dem du es sogar unter Win 9x und ME zum Funktionieren bringen kannst. Desweiteren soll man damit auch mehrere CPU's kontrollieren können. -> Siehe Anhang.

PS: Noch ne kleine Frage: Wird die CPU-Auslastung per Timer oder Thread überprüft? es wäre besser einen thread zu nutzen, da resourcenschonender...
Angehängte Dateien
Dateityp: zip adcpuusage.zip (24,3 KB, 180x aufgerufen)
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze

 
Turbo Delphi für Win32
 
#3
  Alt 19. Aug 2003, 10:07
Hi!

Erstmal danke für's Testen.
Ich benutze keinen Timer. Deine Unit werde ich mir mal anschauen, danke auch dafür. Weißt du, wie man das macht, dass das Fenster "andockt"? Die Idee ist nämlich echt gut!

Gruß Matze
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

 
Delphi 2005 Professional
 
#4
  Alt 19. Aug 2003, 10:14
Hi! Also ich mach das immer so, mit dem Andocken.

Zuerst unter protected (musst du irgendwo über oder unter private und public schreiben) ne Message deklarieren:

procedure WMMove(var message: Tmessage);message WM_Move; // Dann diesen Quelltext einfügen

und dann noch folgende Prozedur dazu schreiben:

Delphi-Quellcode:
procedure TForm1.WMMove(var message: Tmessage);
begin
 IF (Form1.Left > 0) AND (Form1.Left < 10) THEN
  Form1.Left := 0;
 IF (Form1.Top > 0) AND (Form1.Top < 10) THEN
  Form1.Top := 0;
 IF (Form1.Left < Screen.Width - Form1.Width) AND
    (Form1.Left > Screen.Width - Form1.Width -10) THEN
  Form1.Left := Screen.Width - Form1.Width;
 IF (Form1.Top < Screen.Height - Form1.Height) AND
    (Form1.Top > Screen.Height - Form1.Height - 30) THEN
  Form1.Top := Screen.Height - Form1.Height -30;
end;
Das mit dem -30 bei Top hab ich gemacht, weil das ding sonst unter der Taskleiste verschwindet.

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Alexander

 
Turbo Delphi für .NET
 
#5
  Alt 19. Aug 2003, 10:14
Nicht wirklich
Aber mit der API MoveWindow (siehe MSDN/PSDK) kannst du die Position ja schon mal verändern

Und dann kannst du dir ja die WM_MOVE-Message registrieren. Es sollte zumindest relativ einfahc sein, zu überprüfen, ob der Bildschirm zu ende ist oder nicht. Ob da ein fremdes Fenster ist, ist sicherlich schwieriger, da weiß ich im Moment auch nicht weiter....
Aber Bildschirmrand sollte nciht so das Problem sein, Bildschirmauflösung ermitteln und dann mit der eigenen Fensterposition vergleichen.
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze

 
Turbo Delphi für Win32
 
#6
  Alt 19. Aug 2003, 10:16
Danke erstmal.

@Stanlay: Ich probier deinen Vorschlag mal aus.

Gruß Matze
  Mit Zitat antworten Zitat
Alexander

 
Turbo Delphi für .NET
 
#7
  Alt 19. Aug 2003, 10:19
Dieses -30 ist aber nciht sehr elegant, denn was ist wenn der User die Taskleiste größer oder sogar an einer anderen Stelle hat?
Ich glaube in der Code-Library steht was, über's Auslesen von Position und Größe der Taskbar drin.
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

 
Delphi 2005 Professional
 
#8
  Alt 19. Aug 2003, 10:23
Jaja....mach mich fertig....ich halt das ja aus.

Nö, im Ernst

Ich weiß schon, dass es da Probleme geben könnte, wenn die Taskbar höher is. Aber der Vorschlag war ja nur so auf die Schnelle, weil ich den In meiner QT Sammlung gespeichert hatte.
Trotzdem hast du natürlich recht.

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze

 
Turbo Delphi für Win32
 
#9
  Alt 19. Aug 2003, 10:24
Hi!

Hab Stanlay's Code mal verwendet und eine neue Version hochgeladen, da ich einen kleinen Bug entdeckt habe (zw. 60 und 100% wurde die Farbe grau, anstatt rot).

@alexander: Ich kann nichts Passendes finden, sorry.

Gruß Matze
  Mit Zitat antworten Zitat
Alexander

 
Turbo Delphi für .NET
 
#10
  Alt 19. Aug 2003, 10:37
@Matze das sollte dir helfen:
http://www.delphipraxis.net/internal...ect.php?t=7229 und das hier sollten dir helfen:
http://www.delphipraxis.net/internal...ght=taskleiste
Damit wären die Positionsprobleme gelöst

Ähm mir fällt noch was ein. Und zwar solltest du evtl. den Taskbareintrag entfernen - wäre vielleicht nicht schlecht...
Alexander
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 12  1 2311     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz