Seite 1 von 1

DiskSize() ? [erledigt]

Verfasst: Mi, 29. Okt 2014 0:27
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.

Re: DiskSize() ? [erledigt]

Verfasst: Mi, 29. Okt 2014 5:33
von AUGE_OHR