示例#1
0
 /**
  * Destory a progress operation.
  *
  * @param array $pop progress operation details
  * @return boolean true on success
  */
 private function _util_progressDestroy($pop)
 {
     // Connect to vboxwebsrv
     $this->connect();
     try {
         /* @var $progress IProgress */
         $progress = new IProgress($this->client, $pop['progress']);
         $progress->releaseRemote();
     } catch (Exception $e) {
     }
     try {
         // Close session and logoff
         try {
             if ($this->session->handle) {
                 if ((string) $this->session->state != 'Unlocked') {
                     $this->session->unlockMachine();
                 }
                 $this->session->releaseRemote();
                 unset($this->session);
             }
         } catch (Exception $e) {
             $this->errors[] = $e;
         }
         // Logoff session associated with progress operation
         $this->websessionManager->logoff($this->vbox->handle);
         unset($this->vbox);
     } catch (Exception $e) {
         $this->errors[] = $e;
     }
     // Remove progress handles
     $this->persistentRequest = array();
     return true;
 }
示例#2
0
            $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;
                    $red = $imageraw[$start];
                    $green = $imageraw[$start + 1];
                    $blue = $imageraw[$start + 2];
                    //$alpha = $imageraw[$start+3];
                    $colour = imagecolorallocate($image, $red, $green, $blue);
                    imagesetpixel($image, $width, $height, $colour);
                }
            }
            imagepng($image, $filename);
        } catch (Exception $ex) {
            // Ensure we close the VM Session if we hit a error, ensure we don't have a aborted VM
            echo $ex->getMessage();
            $session->close();
        }
        break;
    }
}
$websessionManager->logoff($virtualbox->handle);