Announcement

Collapse
No announcement yet.

Diketten ID, DOS-Interrupt

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Diketten ID, DOS-Interrupt

    Wie ruft man 16-bit Interrupt Routinen auf <br>
    zb. Disketten-ID <br>
    asm <br>
    { laden BL Laufwerk, DSX Adresse Ergebnisrecord } <br>
    mov AX,6900H <br>
    int 21H <br>
    end;<br>
    habe keine entsprechende Routine in der Win-API gefunden

  • #2
    Hier Functions aus dem "Easy Delphi Helper"<br>
    <br>
    function GetSerialNumber(Const ADrive: Char): Integer;<br>
    var<br>
    SerialNum : pdword;<br>
    a, b : dword;<br>
    Buffer : array[0..255] of char;<br>
    begin<br>
    Result:=0;<br>
    if GetVolumeInformation(PChar(ADrive+':\'),<br>
    Buffer,<br>
    SizeOf(Buffer),<br>
    SerialNum,<br>
    a,<br>
    b,<br>
    nil,<br>
    0) then<br>
    Result:=SerialNum^;<br>
    end;<br>
    <br>
    // Es handelt sich dabei nur um eine Nummer, die bei der Formatierung erzeugt wird, sie bezieht ich auf die Partition.<br>
    // Diese Nummer wird beim Klonen einer Festplatte mit übertragen und auf der gleichen Festplatte haben<br>
    // verschiedene Partitionen meist auch verschiedene Nummern (Hinweis von Peter Haas)<br>
    <br>
    // Verwende diese Funktion, wenn Du Delphi 3 hast:<br>
    <br>
    function GetSerialNumber(const ADrive: Char): Integer;<br>
    var<br>
    tmp: Integer;<br>
    buffer: array[0..19] of Char;<br>
    SerialNum: PDWORD;<br>
    begin<br>
    try<br>
    GetVolumeInformation(PChar(ADrive+':\'),<br>
    @buffer[0],<br>
    SizeOf(buffer),<br>
    @SerialNum,<br>
    tmp,<br>
    tmp,<br>
    nil,<br>
    0);<br>
    Result := SerialNum^;<br>
    except<br>
    On EAccessViolation Do<br>
    end;<br>
    end;<br>
    <br&gt

    Comment

    Working...
    X