DiskSize() ? [erledigt]

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

DiskSize() ? [erledigt]

Beitrag von AUGE_OHR »

hi,

ich möchte die Gesamt Grösse einer HDD / SDD oder USB Stick bestimmen.
mit DiskSpace() bekomme ich ja den freien Platz ... aber nicht die gesamte Grösse.

Code: Alles auswählen

FUNCTION DiskSpaceFree(cDrive)                   // "C:\"
LOCAL nRetVal
LOCAL lpSectorsPerCluster     := SPACE(8)
LOCAL lpBytesPerSector        := SPACE(8)
LOCAL lpNumberOfFreeClusters  := SPACE(8)            // -> DiskSpace()
LOCAL lpTotalNumberOfClusters := SPACE(8)            // -> Total Disk Size ...

  nRetVal:=DllCall( "Kernel32.dll" , DLL_STDCALL, "GetDiskFreeSpaceExA",;
                        cDrive                  ,;
                        @lpSectorsPerCluster    ,;
                        @lpBytesPerSector       ,;
                        @lpNumberOfFreeClusters ,;
                        @lpTotalNumberOfClusters   )

RETURN IF(nRetVal=0,-1,Bin2li(lpTotalNumberOfClusters))
soweit so gut ...
aber wenn ich die HDD / SDD partitioniert (C:,D:) habe ... wie bekomme ich dann die Grösse von "C:\" ... hm :-k

p.s. keine WMI (Win32_DiskDrive) oder XbTool (DiskTotal) Lösung erwünscht.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: DiskSize() ? [erledigt]

Beitrag von AUGE_OHR »

gruss by OHR
Jimmy
Antworten