def take_screenshot(self, initial, p): if initial: self.gui_signals.signal_status.emit("") self.gui_signals.signal_progressbar_reset.emit() if self.gui_signals.exit_thread == True: sys.exit() if self.gui_signals.pause_thread == True: while self.gui_signals.pause_thread == True: time.sleep(1) if self.gui_signals.exit_thread == True: sys.exit() time.sleep(0.1) config = ConfigObj("config.ini") control = config['control'] if control == 'Direct mouse control': self.entireScreenPIL = ImageGrab.grab() else: try: vb = VirtualBoxController() self.entireScreenPIL = vb.get_screenshot_vbox() self.logger.debug("Screenshot taken from virtual machine") except: self.logger.warning("No virtual machine found. Press SETUP to re initialize the VM controller") # gui_signals.signal_open_setup.emit(p,L) self.entireScreenPIL = ImageGrab.grab() self.gui_signals.signal_status.emit(str(p.current_strategy)) self.gui_signals.signal_progressbar_increase.emit(5) return True
def take_screenshot(virtual_box=False): """ Take screenshot directly from screen or via virtualbox Args: virtual_box: bool Returns: PIL screenshot """ if not virtual_box: log.debug("Calling screen grabber") screenshot = ImageGrab.grab() log.debug("Direct screenshot successful") else: # virtual_box try: vb = VirtualBoxController() screenshot = vb.get_screenshot_vbox() log.debug("Screenshot taken from virtual machine") except: log.warning( "No virtual machine found. Press SETUP to re initialize the VM controller" ) # gui_signals.signal_open_setup.emit(p,L) screenshot = ImageGrab.grab() return screenshot
def take_screenshot(self, initial, p): if initial: self.gui_signals.signal_status.emit("") self.gui_signals.signal_progressbar_reset.emit() if self.gui_signals.exit_thread == True: sys.exit() if self.gui_signals.pause_thread == True: while self.gui_signals.pause_thread == True: time.sleep(1) if self.gui_signals.exit_thread == True: sys.exit() time.sleep(0.1) config = ConfigObj("config.ini") control = config['control'] if control == 'Direct mouse control': self.entireScreenPIL = ImageGrab.grab() else: try: vb = VirtualBoxController() self.entireScreenPIL = vb.get_screenshot_vbox() self.logger.debug("Screenshot taken from virtual machine") except: self.logger.warning( "No virtual machine found. Press SETUP to re initialize the VM controller" ) # gui_signals.signal_open_setup.emit(p,L) self.entireScreenPIL = ImageGrab.grab() self.gui_signals.signal_status.emit(str(p.current_strategy)) self.gui_signals.signal_progressbar_increase.emit(5) return True
def take_screenshot(self): """Take a screenshot""" log.info("Clearing window") self.signal_update_screenshot_pic.emit(Image.new('RGB', (3, 3))) log.info("Taking screenshot") config = ConfigObj(CONFIG_FILENAME) control = config['control'] if control == 'Direct mouse control': self.original_screenshot = take_screenshot() else: try: vb = VirtualBoxController() self.original_screenshot = vb.get_screenshot_vbox() log.debug("Screenshot taken from virtual machine") except: log.warning( "No virtual machine found. Press SETUP to re initialize the VM controller" ) self.original_screenshot = take_screenshot() log.info("Emitting update signal") self.signal_update_screenshot_pic.emit(self.original_screenshot) log.info("signal emission complete")