| |
|
|
|
Beschreibung:
GetDiskFreeSpaceEx liefert données sur den gesamten et den freien Speicherplatz eines Laufwerks.
Deklaration:
DEF @GetDiskFreeSpaceEx(4) !kernel32,GetDiskFreeSpaceExA
paramètre:
1.paramètre: Adresse eines Cordes ou bien Bereichsvariable avec einem Cordes, qui cela Rootverzeichnis des abzufragenden Laufwerks contient. 2.paramètre: ULARGE_INTEGER Struktur ou bien 8 Byte Bereichsvariable, qui den pour den aktuellen User verfügbaren Speicherplatz contient.=> Byte 0-3 = qui unteren 4 Bytes des Wertes des freien Speicherplatzes (0 jusqu'à 2^32-1 Bytes). Byte 4-7 = qui oberen 4 Bytes des Wertes des freien Speicherplatzes. (2^ 32 Bytes jusqu'à 2^64-1 Bytes). 3.paramètre: ULARGE_INTEGER Struktur ou bien 8 Byte Bereichsvariable, qui den gesamten Speicherplatz des Laufwerks contient.=> Byte 0-3 = qui unteren 4 Bytes des Wertes des freien Speicherplatzes (0 jusqu'à 2^32-1 Bytes). Byte 4-7 = qui oberen 4 Bytes des Wertes des freien Speicherplatzes. (2^ 32 Bytes jusqu'à 2^64-1 Bytes). 4.paramètre: ULARGE_INTEGER Struktur ou bien 8 Byte Bereichsvariable, qui den gesamten freien Speicherplatz des Laufwerks contient.=> Byte 0-3 = qui unteren 4 Bytes des Wertes des freien Speicherplatzes (0 jusqu'à 2^32-1 Bytes). Byte 4-7 = qui oberen 4 Bytes des Wertes des freien Speicherplatzes. (2^ 32 Bytes jusqu'à 2^64-1 Bytes).
Rückgabewert:
1 chez Erfolg, 0 chez faute.
Beispiele:
DEF @GetDiskFreeSpaceEx(4) !"kernel32","GetDiskFreeSpaceExA"
Déclarer LWERK$,Free#,Total#,Total!,Free!,TotalFree!,TotalFree#
...à cause de Bug dans Profan wandele je Words et pas LongInts um...
Proc TransformWord le détour über Word...
Paramètres High&,Push%
Déclarer BitCount%,High!
Laisser BitCount%=0
Tandis que BitCount%<16
IF @Test peu(High&,BitCount%)=1
LET HIGH!=HIGH!+2^(BitCount%+Push%)
endif
inc BitCount%
Wend
Retour HIGH!
ENDPROC
Windowstyle 31
Windowtitle "Diskspace"
Fenêtre 0,0-640,440
LET LWERK$="E:"
DIM Free#,8
DIM Total#,8
DIM TOTALFREE#,8
Decimals 0
@GetDiskFreeSpaceEx(@ADDR(LWERK$),Free#,Total#,TOTALFREE#)
LET FREE!=@Word(Free#,0)
TransformWord @Word(Free#,2),16
LET Free!=FREE!+@!(0)
TransformWord @Long(Free#,4),32
LET Free!=Free!+@!(0)
TransformWord @Long(Free#,6),40
LET Free!=Free!+@!(0)
LET Total!=@Word(Total#,0)
TransformWord @Word(Total#,2),16
LET Total!=Total!+@!(0)
TransformWord @Long(Total#,4),32
LET Total!=Total!+@!(0)
TransformWord @Long(Total#,6),40
LET Total!=Total!+@!(0)
LET TOTALFREE!=@Word(TOTALFREE#,0)
TransformWord @Word(TOTALFREE#,2),16
LET TOTALFREE!=TOTALFREE!+@!(0)
TransformWord @Long(TOTALFREE#,4),32
LET TOTALFREE!=TOTALFREE!+@!(0)
TransformWord @Long(TOTALFREE#,6),40
LET TOTALFREE!=TOTALFREE!+@!(0)
Dispose Free#
Dispose Total#
Dispose TOTALFREE#
PRINT "Frei pour User=";Free!
Imprimer "Größe qui Platte=";Total!
Imprimer "Insgesammt frei=";TOTALFREE!
Tandis que 0=0
Waitinput
Wend
[keywords:77dce4ae0a] Speicherplatz Laufwerk libre disponible verfügbarer bestimmen erfahren auslesen gesamt [/keywords:77dce4ae0a] |
|
|
| |
|
|