/** * Get a list of USB devices attached to a given VM * * @param array $args array of arguments. See function body for details. * @return array list of devices */ public function remote_consoleGetUSBDevices($args) { // Connect to vboxwebsrv $this->connect(); /* @var $machine IMachine */ $machine = $this->vbox->findMachine($args['vm']); $this->session = $this->websessionManager->getSessionObject($this->vbox->handle); $machine->lockMachine($this->session->handle, 'Shared'); $response = array(); foreach ($this->session->console->USBDevices as $u) { /* @var $u IUSBDevice */ $response[$u->id] = array('id' => $u->id, 'remote' => $u->remote); $u->releaseRemote(); } $this->session->unlockMachine(); unset($this->session); $machine->releaseRemote(); return $response; }
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ require_once './vboxServiceWrappers.php'; //Connect to webservice $connection = new SoapClient("vboxwebService.wsdl", array('location' => "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; $virtualbox->openExistingSession($session, $uuid); try { $console = $session->console; $display = $console->display; $screenWidth = $display->width; $screenHeight = $display->height; $imageraw = $display->takeScreenShotSlow($screenWidth, $screenHeight); $session->close(); $filename = './screenshot.png'; echo "Saving screenshot of " . $machine->name . " ({$screenWidth}x{$screenHeight}) to {$filename}\n"; $image = imagecreatetruecolor($screenWidth, $screenHeight); for ($height = 0; $height < $screenHeight; $height++) { for ($width = 0; $width < $screenWidth; $width++) { $start = ($height * $screenWidth + $width) * 4;