kostenloser Webspace werbefrei: lima-city


Win32-Konsolenanwendung: Systemdaten wie Uhrzeit erfragen + ändern

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    robbmaster

    Kostenloser Webspace von robbmaster

    robbmaster hat kostenlosen Webspace.

    Hey Lima-Gemeinde!

    Es ist jetzt schon mehrere Monate her, dass ich in Lima on war, nun ist die Zeit der Rückkehr na. *akteX-sound* :)

    Da ich jetzt einen bezahlten WebSpace habe, war Lima also erstmal nicht mehr nötig, nun nachdem alles eingerichtet ist kehre ich aber zurück, da Lima wohl eines der bestens Boards hast.

    Ich bin gerade am C++ lernen und schreibe grad an einer Win32-Konsolenanwendung (kurz: cmd.exe ohne NetFramework).

    Das Programm soll eine Art "AllesKönner" in Form einer Konsole werden, da ich die ewigen Userinterface bei Windows als IT-Freak langsam satt bin, daher auch mein Anfang mit C++.

    Ich würde mal gerne wissen, wie man auf Systemdaten (richtig gesagt zum Teil auch Systemressourcen) abfragen + ändern kann. Hierzu muss allerdings folgendes gesagt haben. Programme mit Temperaturmeesung bzw. Abfragung werden ja von vielen AntiViren-Programmen + Firewalls, mit Windows Vista erstrecht als Viren etc. angezeigt. Dies ist jetzt nicht so wichtig, da das Programm eh nur von mir benutzt werden wird, daher werd ich mein Vista wohl schon dazu bringen es auszuführen. Ich würde jetzt folgendes gerne wissen.

    Wie lautet ein Befehl um einen bestimmten Ordner bzw. eine Datei zu öffnen, allerdings mit eingabe? Heißt in Sofern, ich gebe dem Programm einen if-Schleife mit, vorher lass ich ihn eine char-Variable machen, die Schleife überprüft dann ob ich open eingegeben haben und soll dann die Datei in dem vorgegeben Ordner (lege ich vorher in der Schleife fest) die datei öffnen. ^^

    Wie kann ich Internetseiten öffnen? Im Grunde muss ich ja die Systemressource für die Internetöffnung erfragen, die dann den eingebenen Wert (z.B. google.de) an den StandartBrowser weitergibt. Funktion siehe Ordneröffnung.

    Beides wird wohl mit ein wenig mehr können nicht soo schwer sein, da das normale Ausführen dies ja auch kann. (Hoffe ich zumal).

    Dann würde ich gerne Systemeinstellungen erfragen und ändern, z.B. die Uhrzeit (sowie das auch bei der Original cmd.exe geht).

    Das war es für das erste mal, würde mich über Antworten freuen. <- :smile: - :nosmile: -> Need Help.

    Der Rest kommt später.

    Robbmaster.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Es gibt eine Funktion um Konsolenbefehle ausführen zu lassen, ich glaube system() oder so... bin mir aber nicht mehr sicher. Wenn du die Funktion aber gefunden hast, kannst du damit alles machen, was du auch in der Konsole machen könntest (Programm mit parametern starten, und möglicherweise auch die Uhrzeit ändern). Ich kenne mich zwar mit der Windows-Konsole nicht aus, aber zumindest ein Programm starten, sollte möglich sein ;-)

    Hoffe das bringt dich ein bisschen weiter,

    mfg
    PD
  4. d***********a

    Standartbrowser aufrufen kannst du in der Konsole mit dem Befehl
    rundll32.exe url.dll,FileProtocolHandler http://www.dapizzafressa.de

    aufrufen.

    Und ja, der Befehl heißt system, zB:
    system("PAUSE");


    Ich hatte selber vor langer Zeit (wie ich angfangen hab) mal ein Programm zum auslesn von Systemeinstellungen geschrieben, vll hilfts dir ja weiter. Ich weiß aber net, ob da net irgendwo ein Fehlerchen drinnen ist:

    #include <windows.h>
    #include <iostream>
    #include <fstream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
     DWORD nSize;
     string str;
     
     cout << "------ PC Infos ------" << endl << endl;
     char PCName[255];
     nSize=sizeof(PCName);
     GetComputerNameA(PCName,&nSize);
     cout << "Computername         :" << PCName << endl << endl << endl;  
    
     cout << "----- User Infos -----" << endl << endl;
     char UName[255];
     nSize = sizeof(UName);
     GetUserNameA(UName,&nSize);  
     cout << "Benutzername         :" << UName << endl << endl << endl;  
    
     cout << "--- Windows  Infos ---" << endl << endl;
     DWORD WVer = GetVersion();
     cout << "Windows-Version      :" << (DWORD)LOBYTE(LOWORD(WVer)) << "." << (DWORD)HIBYTE(LOWORD(WVer)) << endl; 
     char WinDir[MAX_PATH]; 
     GetWindowsDirectoryA(WinDir,sizeof(WinDir));
     cout << "Windows-Ordner       :" << WinDir << endl;
     char SysDir[MAX_PATH];  
     GetSystemDirectoryA(SysDir,sizeof(SysDir));
     cout << "Windows-System-Ordner:" << SysDir << endl;
     char TmpDir[MAX_PATH];  
     GetTempPathA(sizeof(TmpDir),TmpDir);
     cout << "Windows-Temp-Ordner  :" << TmpDir << endl; 
     cout << "Windows Uptime       :" << GetTickCount()/(1000*60) << " Minuten" << endl << endl << endl;
     
     
     cout << "--- Stromversorung ---" << endl << endl; 
     SYSTEM_POWER_STATUS PowerS;
     GetSystemPowerStatus(&PowerS);
     
     if ((DWORD)PowerS.ACLineStatus==0) {
     str = "nicht angeschlossen";
     } else if ((DWORD)PowerS.ACLineStatus==1) {
     str = "angeschlossen";
     } else {
     str = "unbekannter Status";
     }
     cout << "Stromkabel           :" << str << endl;
    
     if ((DWORD)PowerS.BatteryFlag==1) {
     str = "hoch";
     } else if ((DWORD)PowerS.BatteryFlag==2) {
     str = "niedrig";
     } else if ((DWORD)PowerS.BatteryFlag==4) {
     str = "kritisch";
     } else if ((DWORD)PowerS.BatteryFlag==8) {
     str = "wird geladen";
     } else if ((DWORD)PowerS.BatteryFlag==128) {
     str = "keine Batterie";
     } else {
     str = "unbekannter Status";
     }
     cout << "Batteriestatus       :" << str << endl; 
     
     if  (!(DWORD)PowerS.BatteryFlag==128) {
         
     if ((DWORD)PowerS.BatteryLifePercent==255) {
     str = "unbekannter Status";
     } else {
     str = (DWORD)PowerS.BatteryLifePercent;
     }
     cout << "Ladestatus (%)       :" << str << endl;     
         
     if ((DWORD)PowerS.BatteryLifeTime==0xFFFFFFFF) {
     str = "unbekannter Status";
     } else {
     str = (DWORD)PowerS.BatteryLifeTime + " Min.";
     }
     cout << "uebr. Lebenszeit     :" << str << endl;   
     
     if ((DWORD)PowerS.BatteryFullLifeTime==0xFFFFFFFF) {
     str = "unbekannt";
     } else {
     str = (DWORD)PowerS.BatteryFullLifeTime + " Min.";
     }
     cout << "ges. Lebenszeit      :" << str << endl << endl << endl;     
      
     } else {cout << endl << endl << endl; }
    
     cout << "---- Zeit & Datum ----" << endl << endl; 
     SYSTEMTIME Zeit;
     GetSystemTime(&Zeit);
     switch (Zeit.wDayOfWeek) {
     case 1: str = "Montag, der ";
     case 2: str = "Dienstag, der ";
     case 3: str = "Mittwoch, der ";
     case 4: str = "Donnerstag, der ";
     case 5: str = "Freitag, der ";
     case 6: str = "Samstag, der ";
     case 7: str = "Sonntag, der ";
     }
     cout << "aktuelles Datum      :" << Zeit.wDay << "." << Zeit.wMonth << "." << Zeit.wYear << endl;
     cout << "aktuelle Uhrzeit     :" << Zeit.wHour << ":" << Zeit.wMinute << ":" << Zeit.wSecond << ":" << Zeit.wMilliseconds << " (Stunde : Minute : Sekunde : Millisekunde)" << endl << endl << endl;
    
     cout << "------ Sonstiges -----" << endl << endl;
     char AktDir[MAX_PATH];
     GetCurrentDirectoryA(sizeof(AktDir),AktDir);
     cout << "akt. Verzeichniss    :" << AktDir << endl << endl << endl;
    
     cout << "--Laufwerke--" << endl;
    
     char strd[128];
     memset(&strd,0,sizeof(strd));
     char drv[5];
     memset(&drv,0,sizeof(drv));
    
    
    GetLogicalDriveStrings(128,strd);
    int i=0;
    int dtyp=0;
    
    while (strd[i*4]!='\0') {
    cout << strd[i*4];
    
    
    sprintf(drv,"%c:\\",strd[i*4]);
    dtyp=GetDriveType(drv);
    
    if (dtyp==DRIVE_REMOVABLE) {cout << " (Wechseldatentraeger)";}
    else if (dtyp==DRIVE_FIXED) {}
    else if (dtyp==DRIVE_REMOTE) {cout << " (Netzwerkdatentraeger)";}
    else if (dtyp==DRIVE_CDROM) {cout << " (CD-ROM)";}
    else if (dtyp==DRIVE_RAMDISK) {cout << " (RAM)";}
    
    cout << endl;
    i++;
    }
    
     system("pause");
     
     return 0;
    }


    Grüße dapizzafressa
  5. Autor dieses Themas

    robbmaster

    Kostenloser Webspace von robbmaster

    robbmaster hat kostenlosen Webspace.

    Hey. :) Erstmal vielen Dank. Die Systemfunktion scheint tatsächlich zu funktionieren (nicht, dass ich eure Kenntnisse in Frage stelle).

    Vielen Dank auch für dein Programm, ich werde mich da wohl erstmal reinarbeiten müssen, aber es wird schon klappen. :)
    Ich muss aber jetzt erstmal mein Programm so umschreiben das es verschiedene Teile einer Variable erkennt.

    Ich bin jedochimmer noch auf der Suche nach einem Befehl zur Ordner und Dateienöffnung. Ich könnte das zwar auch über die rundll32.exe und die url.dll machen, allerdings wär die Browserllösung über C:\... bzw. file:// ja auch nur ne Notlösung.

    Weiß nochjemand was?

    Edit: Das Programm enthält tatsächlich noch einige Fehler, ich werde mal schauen ob ich die alle rauskrieg. :)

    Beitrag zuletzt geändert: 27.4.2009 20:33:36 von robbmaster
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!