"http://localhost:18083/")); //Logon to webservice $websessionManager = new IWebsessionManager($connection); // Dummy username and password (change to appropriate values or set authentication method to null) $virtualbox = $websessionManager->logon("username","password"); //Get a list of registered machines $machines = $virtualbox->machines; //Take a screenshot of the first vm we find that is running foreach ($machines as $machine) { if ( 'Running' == $machine->state ) { $session = $websessionManager->getSessionObject($virtualbox->handle); $uuid = $machine->id; $machine->lockMachine($session->handle, "Shared"); try { $console = $session->console; $display = $console->display; list($screenWidth, $screenHeight, $screenBpp, $screenX, $screenY, $screenStatus) = $display->getScreenResolution(0 /* First screen */); $imageraw = $display->takeScreenShotToArray(0 /* First screen */, $screenWidth, $screenHeight, "RGBA"); echo "Screenshot size: " . sizeof($imageraw) . "\n"; $filename = 'screenshot.png'; echo "Saving screenshot of " . $machine->name . " (${screenWidth}x${screenHeight}, ${screenBpp}BPP) to $filename\n"; $image = imagecreatetruecolor($screenWidth, $screenHeight); for ($height = 0; $height < $screenHeight; $height++) { for ($width = 0; $width < $screenWidth; $width++) { $start = ($height*$screenWidth + $width)*4; $red = $imageraw[$start]; $green = $imageraw[($start+1)]; $blue = $imageraw[($start+2)]; //$alpha = $image[$start+3]; $colour = imagecolorallocate($image, $red, $green, $blue); imagesetpixel($image, $width, $height, $colour); } } imagepng($image, $filename); } catch (Exception $ex) { echo $ex->getMessage(); } $session->unlockMachine(); $machine->releaseRemote(); $session->releaseRemote(); break; } } $websessionManager->logoff($virtualbox->handle); ?>