[hlp bei Code umfrickeln] HDDs auslesen und jeder HDD eine Variable geben

Screenzocker13

Grünschnabel
Also, ich nochmal da mein anderes Problem in Rekordzeit gelöst wurde :D

Folgenden Code habe ich:
PHP:
<?php

$wmi = new COM("WinMgmts:\\\\.");
 $Massenspeicher = $wmi->ExecQuery("SELECT * FROM Win32_LogicalDisk WHERE DriveType = '3' "); // DriveType = '3' bewirkt das nur Festplatten gelistet werden
  foreach ($Massenspeicher as $MassenspeicherX)

	{
	echo "<b>Laufwerk " . $MassenspeicherX->DeviceID . "</b><br>";
	echo "Gesamt: " . round($MassenspeicherX->Size / 1024 / 1024 ,0) . "<br>";
	echo "Belegt: " . round(($MassenspeicherX->Size - $MassenspeicherX->FreeSpace) / 1024 / 1024 ,0) . "<br>";
	echo "Frei: " . round($MassenspeicherX->FreeSpace / 1024 / 1024 ,0) . "<br><br>";
	}

?>

Dabei kommt das raus:
Code:
Laufwerk C:
Gesamt: 8047
Belegt: 1796
Frei: 6251

Laufwerk D:
Gesamt: 9583
Belegt: 74
Frei: 9509

Soweit so gut, jetzt will ich aber jeder HDD eine Variable geben oder mit einem Array arbeiten (oder was man da halt machen muss)

(Ich weis jetzt nicht wie das in einem Array aussieht, da ich mit denen kaum Erfahrung habe)
Also wenn man zB
PHP:
echo Disk_Free(C:);
eingibt soll halt der freie Speicherplatz von C: rauskommen

Wie stelle ich das an? :)

thx schonmal :)
 
PHP:
<pre>
<?php

function getDiskspace($drive)
{
  $wmi = new COM("WinMgmts:\\\\.");
  $hdd = $wmi->ExecQuery("SELECT * FROM Win32_LogicalDisk WHERE DeviceID = '".$drive."'");
  foreach($hdd as $detail)
  {
    $details['DeviceID'] = $detail->DeviceID;
    $details['Size'] = round($detail->Size / 1024 / 1024, 0);
    $details['FreeSpace'] = round($detail->FreeSpace / 1024 / 1024, 0);
    $details['UsedSpace'] = $details['Size'] - $details['FreeSpace'];
  }
  return $details;
}

$diskc = getDiskspace("C:");

print_r($diskc);

?>
</pre>

Das sollte dir als Anstoß genügen ;)
 
Zurück