Français
Source/ Codesnippets

Datenträger Informationen Laufwerks System

 

KompilierenMarqueSéparation
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#
------------------------------------------------------------------ass=s2>------
end
 
15.07.2007  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

2.191 Views

Untitledvor 0 min.
Thomas Zielinski13.12.2021
AndreasS13.01.2019
Manfred Barei29.07.2017
maroro08.11.2013
plus...

Themeninformationen

cet Thema hat 1 participant:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie