English
Source / code snippets

volume Information Laufwerks system

 

CompileMarkSeparation
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
 
07/15/07  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

2.165 Views

Untitledvor 0 min.
Thomas Zielinski12/13/21
AndreasS01/13/19
Manfred Barei07/29/17
maroro11/08/13
More...

Themeninformationen

this Topic has 1 subscriber:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie