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





  • 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 🙄


Log in to reply