![]() |
CPU-Auslastung
Liste der Anhänge anzeigen (Anzahl: 4)
Hi!
Ich habe ein kleines Programm geschrieben, das einem die aktuelle CPU-Auslastung anzeigt. (mithilfe dieses Forums. :wink: ) Nicht Besonderes. Ich glaube aber, dass es nur unter Win NT/2000/XP geht, aber getestet habe ich das noch nicht. Gruß Matze |
Re: CPU-Auslastung
Liste der Anhänge anzeigen (Anzahl: 1)
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... |
Re: CPU-Auslastung
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! :D Gruß Matze |
Re: CPU-Auslastung
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:
Delphi-Quellcode:
// Dann diesen Quelltext einfügen
procedure WMMove(var message: Tmessage);message WM_Move;
und dann noch folgende Prozedur dazu schreiben:
Delphi-Quellcode:
Das mit dem -30 bei Top hab ich gemacht, weil das ding sonst unter der Taskleiste verschwindet.
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; Man liest sich, Stanlay :hi: |
Re: CPU-Auslastung
Nicht wirklich :mrgreen:
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. |
Re: CPU-Auslastung
Danke erstmal.
@Stanlay: Ich probier deinen Vorschlag mal aus. Gruß Matze |
Re: CPU-Auslastung
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. |
Re: CPU-Auslastung
Jaja....mach mich fertig....ich halt das ja aus. :evil:
Nö, im Ernst :mrgreen: 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. :wink: Trotzdem hast du natürlich recht. Man liest sich, Stanlay :hi: |
Re: CPU-Auslastung
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 |
Re: CPU-Auslastung
@Matze das sollte dir helfen:
![]() ![]() Damit wären die Positionsprobleme gelöst :mrgreen: Ähm mir fällt noch was ein. Und zwar solltest du evtl. den Taskbareintrag entfernen - wäre vielleicht nicht schlecht... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz