ePyx-online.de Just a moment ;-)

10Aug/070

Quellcode Uptime.dll

Da die Uptime.dll mehr oder weniger kleine Standardfunktionen beinhaltet werde ich sie komplett reinstellen
ohne für jede Funktionen einen Extrapost zu machen.

Der Quellcode ist nicht wirklich MFC sondern eher C unter Nutzung der WinAPI, habt bitte Rücksicht auf
das Kauderwelsch im Quelltext. :)

Die "main.c"
[sourcecode language='c']
/* Quelltextdatei "main.c" --- Reines C */
// Headerdatei einbinden
#include "main.h"
#include
#include
#include
#include
#include
#include "Shlwapi.h"
#include
#include

#ifndef BITSPERBYTE
#define BITSPERBYTE 8
#endif

#define IS_BIT(val, bit) ((val) & (1 << (bit)))

#pragma comment(lib, "shlwapi.lib")

using namespace std;

__declspec(dllexport) string getDRIVES(void)
{
DWORD dwLogicalDrives, x, Drive;
char szRoot[32];
int iDrives=0;
struct driv
{
string name;
char typ[100];
};
string Drives;

driv Laufwerk;

dwLogicalDrives = GetLogicalDrives();
for(x = 0; x < (sizeof(dwLogicalDrives) * BITSPERBYTE); x++)
{
if(IS_BIT(dwLogicalDrives, x))
{
PathBuildRoot(szRoot, x);
Drive = GetDriveType(szRoot);
Laufwerk.name = szRoot;
iDrives = GetDriveType(szRoot);
switch(iDrives)
{
case 2:
Drives = Drives + "Laufwerk : " + szRoot + " USB-Drives \r\n";
break;
case 3:
Drives = Drives + "Laufwerk : " + szRoot + " Festplatte \r\n";
break;
case 4:
Drives = Drives + "Laufwerk : " + szRoot + " Network-Share \r\n";
break;
case 5:
Drives = Drives + "Laufwerk : " + szRoot + " CD/DVD \r\n";
break;
case 6:
Drives = Drives + "Laufwerk : \t\t" + szRoot + ": test 6\t\n";
break;
case 7:
Drives = Drives + "Laufwerk : \t\t" + szRoot + ": test 7 \t\n";
break;
case 8:
Drives = Drives + "Laufwerk : \t\t" + szRoot + ": test 8\t\n";
break;
default:
Drives = Drives + "Laufwerk : \t\t" + szRoot + ": " + (char )iDrives;
break;
}
}
}
return Drives;
}

__declspec(dllexport) string getRAM(void)
{
MEMORYSTATUS lpBuffer;
string RAM;
char szString[1024]; // Fiktiver Wert

lpBuffer.dwLength = sizeof(MEMORYSTATUS);
GlobalMemoryStatus (&lpBuffer);

sprintf_s(szString, "Speichernutzung: %d %% \r\nGesamter Speicher: %d MB \r\nVerfügbarer Speicher: %d MB", lpBuffer.dwMemoryLoad, lpBuffer.dwTotalPhys/1024/1024, lpBuffer.dwAvailPhys/1024/1024);
RAM = szString;
return RAM;
}

__declspec(dllexport) string getUptime(void)
{
int uptime = GetTickCount() / 1000;
string returnstr,sStunden,sMinuten,sSekunden;

/*GetTickCount() liefert die Anzahl der Millisekunden
die verstichen sind, seitdem Windows gestartet wurde. */
int Stunden = uptime/60/60;
int Minuten = uptime/60-uptime/60/60*60;
int Sekunden = uptime-uptime/60*60;
ostringstream outStream;
outStream << Stunden;
sStunden = outStream.str();
outStream.str("");
outStream << Minuten;
sMinuten = outStream.str();
outStream.str("");
outStream << Sekunden;
sSekunden = outStream.str();
outStream.str("");
//returnstr += "Windows Uptime: \t";
returnstr += sStunden + " Stunden ";
returnstr += sMinuten + " Minuten\r\n";
returnstr += sSekunden + " Sekunden";
return returnstr;
}

__declspec(dllexport) string getVersion(void)
{
OSVERSIONINFO version;

string WindowsVersion;
version.dwOSVersionInfoSize=sizeof(version);
if (GetVersionEx(&version))
{
if (version.dwPlatformId == VER_PLATFORM_WIN32s)
WindowsVersion = "Win32 ";
else if (version.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
{
if(version.dwMinorVersion == 0 && (strchr(version.szCSDVersion,'B')==NULL)
&& (strchr(version.szCSDVersion,'C')==NULL))
WindowsVersion = "Windows 95 ";
else
if(version.dwMinorVersion == 0&& (strchr(version.szCSDVersion,'B')!=NULL))
WindowsVersion = "Windows 95 OSR 2 ";
else
if(version.dwMinorVersion == 0 && (strchr(version.szCSDVersion,'C')!=NULL))
WindowsVersion = "Windows 95 OSR 2.5 ";
else
if(version.dwMinorVersion == 10 && (strchr(version.szCSDVersion,'A')==NULL))
WindowsVersion = "Windows 98 ";
else if (version.dwMinorVersion == 10
&& (strchr(version.szCSDVersion,'A')!=NULL))
WindowsVersion = "Windows 98 Second Edition ";
}

else if (version.dwPlatformId == VER_PLATFORM_WIN32_NT)
if (version.dwMinorVersion == 90)
WindowsVersion = "Windows Millenium Edition ";
else if (version.dwMajorVersion==5)
WindowsVersion = "Windows XP ";
else
{
WindowsVersion = "unbekannt ";
return WindowsVersion;
}
if (WindowsVersion != "unbekannt ")
{
ostringstream outStream;
outStream << version.dwMajorVersion;
string MajorVersion = outStream.str();
outStream.str("");
outStream << version.dwMinorVersion;
string MinorVersion = outStream.str();
outStream.str("");
outStream << (version.dwBuildNumber & 0xffff);
string BuildNumber = outStream.str();
outStream.str("");
/*string MajorVersion = version.dwMajorVersion;
string MinorVersion = version.dwMinorVersion;
string BuildNumber = (version.dwBuildNumber & 0xffff);*/
string CSDVersion = version.szCSDVersion;

// cout <<<"."<<<"."
// <<(version.dwBuildNumber & 0xffff)<<" "<
<
WindowsVersion += " " + MajorVersion + "." + MinorVersion + "\r\n" + BuildNumber + " " + CSDVersion;
return WindowsVersion;
}
}
else
return "Die Windows Version kann nicht herausgefunden werden.";
}

string getCPUMHZ(void)
{
string speedMHz;
char MHz[10];
DWORD dwNumber = 0;
DWORD dwData = sizeof(DWORD);
HKEY hKey;
RegOpenKey(HKEY_LOCAL_MACHINE,"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0",&hKey);
RegQueryValueEx(hKey,"~MHz",0,0,(BYTE*)&dwNumber,&dwData);
RegCloseKey(hKey);

sprintf_s(MHz,"%d MHz",dwNumber);
speedMHz = MHz;
/*

description = (char *) cDaten;
*/
// cout << " Bezeichnung : " << description << endl;
return speedMHz;
}

string getCPUVendor(void)
{
string vendor;
HKEY hKey;
RegOpenKey(HKEY_LOCAL_MACHINE,"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0",&hKey);

DWORD dwData2 = 256;
BYTE cDaten[256] = "";
RegQueryValueEx(hKey,"VendorIdentifier",0,0,cDaten,&dwData2);
vendor = (char *) cDaten;

return vendor;
}

string getCPUDesc(void)
{
string description;
HKEY hKey;
RegOpenKey(HKEY_LOCAL_MACHINE,"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0",&hKey);

DWORD dwData2 = 256;
BYTE cDaten[256] = "";
RegQueryValueEx(hKey,"ProcessorNameString",0,0,cDaten,&dwData2);
description = (char *) cDaten;

return description;
}

using namespace std;
// Funktion deklarieren
__declspec(dllexport) string getUptime(void);
__declspec(dllexport) string getVersion(void);
__declspec(dllexport) string getRAM(void);
__declspec(dllexport) string getDRIVES(void);
__declspec(dllexport) string getCPUMHZ(void);
__declspec(dllexport) string getCPUVendor(void);
__declspec(dllexport) string getCPUDesc(void);
#endif // MAIN_H
[/sourcecode]

hat dir dieser Artikel gefallen?

Dann abonniere doch diesen Blog per RSS Feed!

Kommentare (0) Trackbacks (0)

Zu diesem Artikel wurden noch keine Kommentare geschrieben.


Kommentar schreiben


Noch keine Trackbacks.