Seriennummer einer Partition ermitteln |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
Folgende Funktion gibt die Seriennummer einer Partition zurück. Ihr muss als Parameter der entsprechende Laufwerksbuchstabe übergeben werden:
function GetSerialNumber(const ADrive: Char): Integer;
var
SerialNum: DWORD;
Dummy: DWord;
Buffer: array[0..255] of Char;
begin
Result := 0;
if GetVolumeInformation(PChar(ADrive+':\'),
Buffer,
SizeOf(Buffer),
@SerialNum,
Dummy,
Dummy,
nil,
0) then
Result:=SerialNum
else
RaiseLastOSError;
end;
Es handelt sich dabei nur um eine Nummer, die bei der Formatierung erzeugt wird, sie kann keinesfalls als eindeutige Identifizierung einer Festplatte dienen. Selbst einzelne Partitionen der physisch gleichen Festplatte bekommen andere Nummern zugewiesen.RaiseLastOSError ist erst ab Delphi 6 verfügbar. Programmierer, die mit älteren Versionen arbeiten müssen an dieser Stelle RaiseLastWin32Error verwenden.Aufgerufen werden kann die Funktion beispielsweise so:
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := IntToHex(GetSerialNumber('C'), 8);
end;
Der Rückgabewert wird als 8-stellige Hex-Zahl interpretiert.
- Prüfen, ob eine Audio-CD eingelegt ist
- Netzlaufwerke ohne Dialog verbinden
- Netzlaufwerke mit Dialog verbinden
- Feststellen, ob ein Medium eingelegt ist
- CD-Laufwerk öffnen/schließen
- Laufwerkstyp ermitteln (Festplatte, CD, Ram-Disk...)
- Namen einer Partition ermitteln
- Benachrichtigung bei CD-Wechsel
- Feststellen, ob ein Laufwerk bereit ist