| |
|
|
| KompilierenMarcaSeparaciónSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Laufwerkspartitionen größer als 2 GB sicher bestimmen
Lauffähig ab Profan-Version 5.0
PRFellow-Vorlage
Autor: Thomas Hölzer - Alle Rechte vorbehalten
Partitionsgrößen > 2 GB auslesen
Benötigt Profan 6.1 oder höher
Achtung:
Man muß mächtig aufpassen, um diese Funktion nutzen zu können,
die eigentlich 64 Bit-Integer erwartet.
Deklariert man zwischen und hinter den zu übergebenden Longints keine
weiteren 32 Bit Variablen (im Beispiel zur Verdeutlichung dummy*& genannt),
behauptet Profan fälschlich, die an die Funktion übergebenen Variablen
seien nicht deklariert.
Auf diese Dummys selbst darf man nicht zugreifen,
sonst meldet Profan wieder, sie seien nicht deklariert!
Selbiges passiert, wenn man eine 16 Bit-Variable(%) oder
64 Bit Variable(!) zwischen den zu übergebenden Variablen deklariert
Def GetDiskFreeSpaceEx(4) !KERNEL32,GetDiskFreeSpaceExA
Declare Size&,dummy1&,FreeAvail&,dummy2&,AvailToCall&,dummy3&
Declare Drive#
Proc LongOverflowToFloat
Parameters long&
Declare result!
If Gt(long&,-1)
Let result!=long&
Elseif Equ(long&,-1)
Let result!=Add(Mul($7FFFFFFF,2),1)
ElseIf Lt(long&,-1)
Let result!=Add(Mul($7FFFFFFF,2),long&)
EndIf
Return result!
EndProc
Cls
Dim drive#,4
String drive#,0=C:
GetDiskFreeSpaceEx(drive#,Addr(AvailToCall&),Addr(size&),Addr(FreeAvail&))
Dispose drive#
Decimals 0
LongOverflowToFloat Size&
Print !(0), Bytes ingesamt
LongOverflowToFloat FreeAvail&
Print !(0), Bytes frei ingesamt
LongOverflowToFloat AvailToCall&
Print !(0), Bytes verfügbar für aktuellen User
WaitInput
|
|
|
| |
|
|