Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

HD-Grösse auslesen

Paisible / 7 Antworten / Baumansicht Nickles

Hallo


Ich (in Ausbildung) schreibe gerade ein Programm, dass gewisse PC-Daten ausliest.


Ist es möglich, die Harddisk-Grösse aus der Registry auszulesen? Das gleiche gilt für die Grafikkarte (Typ, Anzahl Ram)...


Falls das nicht möglich ist, gibt es noch einen anderen Weg als die Registry?

bei Antwort benachrichtigen
Plazebo Paisible „HD-Grösse auslesen“
Optionen

In welchem Programm schreibst du?

bei Antwort benachrichtigen
Paisible Plazebo „In welchem Programm schreibst du?“
Optionen

Ich schreibe das Programm in VB

bei Antwort benachrichtigen
Plazebo Paisible „HD-Grösse auslesen“
Optionen

Der verfügbare und freie RAM lässt sich bei Delphi übrigens wie folgt auslesen (von www.delphiwelt.de geklaut):

procedure TForm1.Button1Click(Sender: TObject);
var
memory:TMemoryStatus;
begin
memory.dwLength:=sizeof(memory);
GlobalMemoryStatus(memory);
ShowMessage('Totaler RAM'+inttostr(memory.dwTotalPhys)+' Bytes');
ShowMessage('Freier RAM: '+inttostr(memory.dwavailPhys)+' Bytes');
end;

bei Antwort benachrichtigen
Plazebo Paisible „HD-Grösse auslesen“
Optionen

Zu Visual Basic kann ich nix sagen, sollte ähnlich sein wie Delphi. Aber schau doch mal in Foren oder so nach, dort gibt es häufig Tutorials und Beispiele wie man eine bestimmte Sache macht.

Vielleicht gibt es bei VB ja auch einen vorgegebenen Befehl für das Auslesen der Festplattengröße.

bei Antwort benachrichtigen
UselessUser Paisible „HD-Grösse auslesen“
Optionen

Hi, Paisible!

Also, ich weiß, dass über VBScript solche Dinge möglich sind, deshalb werden sie auch für Visual Basic als 'Teilmenge' von VB verfügbar sein.

So gibt es bei VBScript innerhalb des Objektes "Scripting.FileSystemObject" das Objekt "Drive", welches Eigenschaften wie "AvailableSpace" (in Byte), "TotalSpace" (in Byte), "DriveType", "SerialNumber" und "FileSystem" enthält.
VBScript greift auf das "WScript.Shell"-Objekt zu, um mit "RegRead (Schlüsselname, Wert)" Daten aus der Registry auslesen zu können, demnach müsste Visual Basic das auch bieten.

Wo sind also die Cracks hier im Forum?

Programmiertechnisch könntest du die Registry (Win98) im Unterschlüssel "HKEY_LOCAL_MACHINE/Enum/PCI" nach dem Wert "DISPLAY" durchsuchen, um dann im gleichen Unterschlüssel den Wert von "DeviceDesc" auszulesen. Dann hast du das Modell der Grafikkarte.
Um nähere technische Daten von der Grafikkarte zu erhalten, müsstest du vielleicht tatsächlich eine andere Programmiersprache einbinden, da mir als Einsteiger VB nicht gerade sehr 'hardware-nah' erscheint. Oder ist das ein Gerücht?

MfG

Rückmeldungen über Hilfestellungen sind sehr erwünscht:1. investiere ich Zeit, um dir zu antworten und2. möchte ich auch etwas dazulernen.
bei Antwort benachrichtigen
UselessUser Paisible „HD-Grösse auslesen“
Optionen

Schau auch mal unter
http://www.activevb-archiv.net/vb/index.html

Ist allerdings etwas für die fortgeschrittenen Programmierer, vielleicht kannst du damit etwas anfangen.

MfG

UselessUser

Rückmeldungen über Hilfestellungen sind sehr erwünscht:1. investiere ich Zeit, um dir zu antworten und2. möchte ich auch etwas dazulernen.
bei Antwort benachrichtigen
REPI Paisible „HD-Grösse auslesen“
Optionen

Dim Tabulator

Set FSO = CreateObject("Scripting.FileSystemObject")

Tabulator = Chr(9)
NeueZeile = vbCRLF

Const DriveTypeWechselbar = 1
Const DriveTypeFest = 2
Const DriveTypeNetzwerk = 3
Const DriveTypeCDROM = 4
Const DriveTypeRAMLW = 5


Function ZeigeLWTyp(LW)

Dim S

Select Case LW.DriveType
Case DriveTypeWechselbar
S = "Wechselmedium"
Case DriveTypeFest
S = "Festpatte"
Case DriveTypeNetzwerk
S = "Netzwerk"
Case DriveTypeCDROM
S = "CD-ROM"
Case DriveTypeRAMLW
S = "RAM-Laufwerk"
Case Else
S = "Unbekannt"
End Select

ZeigeLWTyp = S

End Function

Function ErzeugeLWInformation(FSO)

Dim LWs
Dim LW
Dim S

Set LWs = FSO.Drives

S = "Anzahl der Laufwerke:" & Tabulator & LWs.Count & NeueZeile & NeueZeile

' Erstellt die erste Zeile des Berichts.
S = S & String(2, Tabulator) & "Laufwerk"
S = S & String(3, Tabulator) & "Datei"
S = S & Tabulator & "Gesamt"
S = S & Tabulator & "Frei"
S = S & Tabulator & "Verfügbar"
S = S & Tabulator & "Seriennummer" & NeueZeile

' Erstellt die zweite Zeile des Berichts.
S = S & "Laufwerkbuchstabe"
S = S & Tabulator & "Pfad"
S = S & Tabulator & "Typ"
S = S & Tabulator & "Bereit?"
S = S & Tabulator & "Name"
S = S & Tabulator & "System"
S = S & Tabulator & "Speicherplatz"
S = S & Tabulator & "Speicherplatz"
S = S & Tabulator & "Speicherplatz"
S = S & Tabulator & "Nummer" & NeueZeile

' Trennlinie.
S = S & String(105, "-") & NeueZeile

For Each LW In LWs

S = S & LW.DriveLetter
S = S & Tabulator & LW.Path
S = S & Tabulator & ZeigeLWTyp(LW)
S = S & Tabulator & LW.IsReady

If LW.IsReady Then
If DriveTypeNetzwerk = LW.DriveType Then
S = S & Tabulator & LW.ShareName
Else
S = S & Tabulator & LW.VolumeName
End If

S = S & Tabulator & LW.FileSystem
S = S & Tabulator & LW.TotalSize
S = S & Tabulator & LW.FreeSpace
S = S & Tabulator & LW.AvailableSpace
S = S & Tabulator & Hex(LW.SerialNumber)

End If

S = S & NeueZeile

Next

ErzeugeLWInformation = S

End Function

MsgBox ErzeugeLWInformation(FSO)



ist ein Test VB-Script zum Thema HD !!

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen