From f215e02bf85f68d3a6106c2a1f4f7f063f819064 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 11 Apr 2024 10:17:27 +0200 Subject: Adding upstream version 7.0.14-dfsg. Signed-off-by: Daniel Baumann --- .../Main/webservice/samples/php/clienttest.php | 108 +++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 src/VBox/Main/webservice/samples/php/clienttest.php (limited to 'src/VBox/Main/webservice/samples/php') diff --git a/src/VBox/Main/webservice/samples/php/clienttest.php b/src/VBox/Main/webservice/samples/php/clienttest.php new file mode 100644 index 00000000..dc5918c3 --- /dev/null +++ b/src/VBox/Main/webservice/samples/php/clienttest.php @@ -0,0 +1,108 @@ + "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); + +?> + -- cgit v1.2.3