Cpp Systeminfo mit WinAPI
-
Hi Leute,
ich würde gerne in C++ ein Programm in der WINApi schreiben, dass in Form eines
Fensters am oberen Bildschirmrand, einige Systeminfos anzeigt:
-Battery Status
-Internet Connection
-CPU oder RAM Auslastung
-Aktuelle Curosr Position
Ich hab mir schon mla was kleines zusammegebastelt was dann in der Struktur
so aussieht:#include <header.h> //Main Defintion //.......... //WinAPI Zeug //.......... while (true) { if(InternetState == true) { //Bitmap mit entsprechendem Bild anzeigen } if(InternetState == false) { //Bitmap mit entsprechendem Bild anzeigen } //und viele weitere verschachtelte if Abfragen ... }
Nun wird wegen while(true) natürlich nix angezeigt weil das Programm nicht
zum Ende kommt. Nun ist meine Frage ob ich das irgendwie ändern kann oder
ob es eine alternative zu while(true) Schleifen oder meiner Idee gibt...
Ich habe von Threads gehört, aber die brauchen ja ne Funktion und in der kann
ich keine BMP laden.
Vielen Dank für alle Antworten
LG
Moritz
-
Battery Status :
http://snipplr.com/view/54867/Internet Connection :
http://msdn.microsoft.com/en-us/library/Windows/desktop/aa384702(v=vs.85).aspxCPU oder RAM Auslastung :
http://www.c-plusplus.net/forum/86669-full
http://de.softuses.com/57443Aktuelle Curosr Position :
http://msdn.microsoft.com/en-us/library/windows/desktop/ms648390(v=vs.85).aspx
-
CPPtester schrieb:
Nun wird wegen while(true) natuerlich nix angezeigt weil das Programm nicht zum Ende kommt.
Soll es das denn? Es soll doch zeichnen, nicht zu Ende kommen?!
Mit while(true) ohne einer Pause zwischen jedem Durchlauf sorgt natuerlich fuer maximale Auslastung, was du sicher nicht willst.
Du koenntest ein Sleep(100); in die Schleife setzen, oder einen Timer nutzen (google) oder in Kombination nur bei Aenderungen von Werten diese neu zeichnen.(Admins: Koennt ihr mal den Umlaute-Bug fixen?!)
-
@Alexey
Danke aber das ist nicht das Problem@Hi
Das mag vielleicht bei Konsolenprogrammen sein, aber wenn ich in der WINApi eine while true schleife verwende, wird am Ende nichts angezeigt. Gar nichts!
-
wird am Ende nichts angezeigt. Gar nichts!
Vermutlich mit Schleife blockierst du GUI Thread.
wie schon "Hi" geschrieben hat, verwende Timer
oder
Multithreading
-
Aeh ja, die message pump musst du natuerlich auch ausfuehren