Deutsch
Quelltexte/ Codesnippets

Datenträger Informationen Laufwerks System

 

KompilierenMarkierenSeparieren
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
System: Laufwerks- und Datenträger-Informationen
===================================================================
Alle Laufwerks-, und Datenträgerinformationen
mit Profan 32 Bit u. Win 95 Abfragen
1998 Richard Maurukas
===================================================================
1. Anzahl der installierten Laufwerke ermitteln
2. Kennbuchstaben der Installierten Laufwerke ermitteln
3. Laufwerkseigenschaften abfragen.(Festplatte, CD-ROM usw.)
4. Datenträger Speicherinformationen ermitteln(Cluster, Sektoren...)
5. Datenträger-Informationen ermitteln(Laufwerksname, SerienNr....)
----------------------------------------------------------------------
### Definition für 1. und 2.
Def HoleLWKennung(2) ! KERNEL32.DLL,GetLogicalDriveStringsA
### Definition für 3.
Def GetDriveType(1) ! KERNEL32.DLL,GetDriveTypeA
### Definition für 4.
Def HoleLaufwerkskapazität(5) ! KERNEL32.DLL,GetDiskFreeSpaceA
### Defintion für 5.
Def GetVolumeInfo(8) ! Kernel32.dll,GetVolumeInformationA
declare MaxZeichen%         Max. Anzahl der Zeichen der Bereichsvariablen
declare LWKennung#          Nimmt die Laufwerksbuchstaben auf
declare LWInstall&          Anzahl der ermittelten Zeichen einschl. Null Byte
Declare i%
declare Laufwerk$
declare LWTyp&
declare Laufwerk#
declare SectperCluster#
declare BytesperSector#
declare Freeclusters#
declare Clusters#
declare LWName#
declare LWNameLänge#
Declare LWSerNr#
declare MaxDatNamlänge#
declare DateiSystemFlag#
declare DateiSystemName#
declare DatSystemNamLänge#
declare test&
declare LWNamelänge&,DatsystemNamLänge&
Let MaxZeichen%=104                26*4 Zeichen für LWKennung
Dim LWkennung#,MaxZeichen%         Bereichsvariable dimensionieren
Dim Laufwerk#,4                    Drei Zeichen für die Laufwerksangabe
Dim SectperCluster#,1              Zeichen für die Anzahl die Cluster
Dim BytesperSector#,1              Bytes und Sektoren sollten  ausreichen.
Dim Freeclusters#,1
Dim Clusters#,1
dim LWName#,16
dim LwNameLänge#,4
dim LWSerNr#,16
dim DateisystemName#,255
dim DatsystemNamLänge#,1
dim MaxDatNamLänge#,1
dim Dateisystemflag#,1
declare LwAuswahl%,Ende%
----------------------------------------------------------------------

Proc  Laufwerkskennung

    Let LWInstall&=HoleLWKennung(MaxZeichen%,LWKennung#)
    print
    Print Installierte Laufwerke   :;div&(LWInstall&,4)
    print ================================================
    Let I%=0

    whileNot equ(i%,LWInstall&)

        Print Installiertes Laufwerk   :;string$(LWKennung#,I%)
        Hier kann noch in Großbuchstaben umgewandelt werden.
        addstring(LWAuswahl%,String$(Lwkennung#,i%))
        let I%=add(i%,4)  die nächste Adresse setzen

    wend

    Print ---------------------------------------------

endproc

--------------------------------------------------------------------------

Proc LaufwerksType

    decimals 0                       Für die Anzeige keine Nachkommastellen
    String Laufwerk#,0=Laufwerk$
    Let LWTyp&=GetDriveType(Laufwerk#)
    Print LaufwerksType : ;LWTYp&
    Print ---------------------------------------------
    case equ(LWTyp&,0) :Print Laufwerk : ;Laufwerk$; Ist nicht ermittelbar.
    case equ(LWTyp&,1) :Print Laufwerk : ;Laufwerk$; ist im System nicht vorhanden.
    Case equ(LWTyp&,2) :Print Laufwerk : ;Laufwerk$; ist Laufwerk mit wechselbaren Datenträger.
    case equ(LWTyp&,3) :Print Laufwerk : ;Laufwerk$; ist ein Festplattenlaufwerk.
    case equ(LWTyp&,4) :Print Laufwerk : ;Laufwerk$; ist ein Netzwerklaufwerk.
    case equ(LwTyp&,5) :Print Laufwerk : ;Laufwerk$; ist ein CD-ROM Laufwerk.
    case equ(lwTyp&,6) :Print Laufwerk : ;Laufwerk$; ist eine RAM-Disk.
    Print =============================================
    -----------------------------------------------------------------------------
    Laufwerkskapazität ermitteln--------------------------------------------------
    HoleLaufwerksKapazität(Laufwerk#,SectperCluster#,BytesperSector#,Freeclusters#,Clusters#)
    Print Speicherinformationen von Laufwerk : ;Laufwerk$
    Print ---------------------------------------------
    print Cluster                :;long(Clusters#,0)
    print Sektoren pro Cluster   :;long(SectperCluster#,0)
    print Bytes pro Sektor       :;long(BytesperSector#,0)
    Print Bytes Pro Cluster      :;mul(long(SectperCluster#,0),long(BytesperSector#,0))
    print Freie Cluster          :;long(Freeclusters#,0)
    Print ---------------------------------------------
    Print Bytes Gesamt           :;mul(Mul(long(Clusters#,0),long(SectperCluster#,0)),long(BytesperSector#,0))
    Print Bytes Frei             :;mul(Mul(long(FreeClusters#,0),long(SectperCluster#,0)),long(BytesperSector#,0))
    Print =============================================
    Laufwerkseigenschaft ermitteln------------------------------------------------------
    let LWNamelänge&=16
    Let DatsystemNamLänge&=255
    Let test&=GetvolumeInfo(Laufwerk#,LWName#,LWNameLänge&,
    LWSerNr#,MaxDatNamLänge#,DateiSystemFlag#,
    DateiSystemName#,DatSystemNamLänge&)

    If test&

        Print Datenträger-Informationen
        Print ---------------------------------------------
        Print Laufwerk               :;String$(Laufwerk#,0)
        Print Laufwerksname          :;String$(LWName#,0)
        Print LW-Serien Nummer DEZ   :;long(LWSernr#,0)
        Print LW-Serien Nummer HEX   :;add$(add$(left$(Hex$(long(LWSernr#,0)),4),-),right$(Hex$(long(LWSernr#,0)),4))
        Print Max. Dateinamenlänge   :;Long(MaxDatNamLänge#,0)
        Print DateisystemName        :;String$(DateiSystemName#,0)
        Print DateisystemFlag   DEZ  :;byte(DateiSystemflag#,0)
        Print Dateisystemflag   BIN  :;BIN$(Long(Dateisystemflag#,0))
        ----------------------------------------------------------------------------------
        Dateisystemflags können noch als Text angezeigt werden.
        Die Flags werden von rechts nach links aus Bin$(Long(Dateisystemflag#,0))
        ausgelesen.
        Gibt die Flags des Laufwerks zurück. (Bezogen auf das verwendete Dateisystem)
        Die Flages FS_FILE_COMPRESSION und FS_VOL_IS_COMPRESSED sind nur entweder oder
        vorhanden.
        Dieser Parameter kann eine Kombination von den folgenden Werten sein:
        Wert	Bedeutung
        FS_CASE_IS_PRESERVED	Wenn dieses Flag gesetzt ist, wird ein Dateiname
        benötigt um Daten in das Dateisystem zu schreiben.
        FS_CASE_SENSITIVE	Wenn dieses Flag gesetzt ist, werden bei Dateinamen
        zwischen Groß- und Kleinbuchstaben unterschieden.
        FS_UNICODE_STORED_ON_DISK	Wenn dieses Flag gesetzt ist, wird UNICODE bei
        den Dateinnamen unterstützt.
        FS_PERSISTENT_ACLS	Wenn dieses Flag gesetzt ist, benötigt das Dateisystem
        ACLs. NTFS benötigt ACLs, HPFS und FAT nicht.
        FS_FILE_COMPRESSION	Wenn dieses Flag gesetzt ist, unterstützt das
        Dateisystem Dateikomprimierung.
        FS_VOL_IS_COMPRESSED	Das angegebene Laufwerk ist komprimiert.
        Werte
        FS_CASE_SENSITIVE               $00000001
        FS_CASE_IS_PRESERVED            $00000002
        FS_UNICODE_STORED_ON_DISK       $00000004
        FS_PERSISTENT_ACLS              $00000008
        FS_VOL_IS_COMPRESSED            $00008000
        FS_FILE_COMPRESSION             $00000010
        --------------------------------------------------------------------------------------

    else

        print Fehler beim Lesen. Die angezeigten Werte stimmen nicht.

    endif

Endproc

--------------------------------------------------------------------------------------
Window 0,0-600,400
Windowtitle Laufwerks Informationen abfragen. 1998 Richard Maurukas
Let LWAuswahl%=Createlistbox(%Hwnd,,500,20,80,100)
Laufwerkskennung

whilenot Ende%

    waitinput
    cls
    let Laufwerk$=Trim$(Getstring$(LWauswahl%,Getcursel(LWauswahl%)))
    LaufwerksType
    String Laufwerk#,0=

wend

Bereichsvariablen Freigeben-----------nicht vergessen----------------
Dispose Laufwerk#
Dispose LWKennung#
Dispose SectperCluster#
Dispose BytesperSector#
Dispose Freeclusters#
Dispose Clusters#
Dispose LWName#
Dispose LWNameLänge#
Dispose LWSerNr#
Dispose MaxDatNamlänge#
Dispose DateiSystemFlag#
Dispose DateiSystemName#
Dispose DatSystemNamLänge#
------------------------------------------------------------------------
end
 
15.07.2007  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.162 Betrachtungen

Unbenanntvor 0 min.
Thomas Zielinski13.12.2021
AndreasS13.01.2019
Manfred Barei29.07.2017
maroro08.11.2013
Mehr...

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

unbekannt (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie