如何取消VirtualBox VM的截图
VirtualBox是一个伟大的虚拟化解决方案,但是如果缺少一个大的特点:可以拍摄虚拟机的截图。 当然,您可以使用主机操作系统的打印屏幕功能,但是这样可以清除整个工作空间的图片,包括窗口装饰等,您必须在iage编辑软件中删除这是一项繁琐的工作。 本教程介绍如何创建一个小脚本,当您单击它时,会自动截取VirtualBox VM的屏幕截图; 它使用VirtualBox命令行工具VBoxManage。
本文档不附带任何形式的保证! 我想说,这不是设立这样一个制度的唯一办法。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!
1初步说明
我将创建脚本vboxscreenshot.sh
并将其放在桌面上,以便您可以轻松地双击它来创建屏幕截图。 屏幕截图将放在桌面上(您可以在脚本中指定另一个输出目录); 文件名将如1.png
, 2.png
, 3.png
等,即脚本会自动增加文件名,以便您以后知道屏幕截图的顺序。
我假设您一次只运行一个虚拟机,因为脚本会尝试自动查找正在运行的虚拟机的名称。 或者,您可以对要将其截取的虚拟机的名称进行硬编码。
2创建vboxscreenshot.sh
打开gedit ...
...并创建一个包含以下内容的新文件:
#!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin vboxmanage=/usr/bin/VBoxManage # Specify the output directory outputdir=~/Desktop # Find the next free image ID (1.png, 2.png, 3.png, etc.) cd $outputdir list=([0-9]*) last=${list[@]: -1} nextnum=$((10#${last%%[^0-9]*} + 1)) # Find out the name of the running VM; this assumes that you have just one VM running at a time for uuid in $($vboxmanage list runningvms --long | grep "UUID: " | awk 'BEGIN{FS="UUID: "}{print $2}') do vm=$($vboxmanage showvminfo $uuid | sed -e'/^USB Device Filters:/,$ d' | grep "Name:" | awk 'BEGIN{FS="Name: "}{print $2}') done # Alternatively, you can specify the name of the VM here of which you want to take a screenshot #vm="Ubuntu 12.04 Desktop" $vboxmanage controlvm "$vm" screenshotpng $outputdir/$nextnum.png exit 0 |
如果不想在桌面上放置屏幕截图,您可以调整outputdir变量中的输出目录。 如果要指定虚拟机的名称,请取消注释#vm =“Ubuntu 12.04 Desktop”
行,并将Ubuntu 12.04 Desktop
替换为虚拟机的名称; 否则脚本会自己确定运行的虚拟机的名称(在这种情况下,一次只运行一个虚拟机很重要)。
将文件另存为vboxscreenshot.sh
在桌面上:
然后右键单击该文件,然后选择属性
:
转到权限
选项卡,并选中允许执行文件作为程序
复选框:
而已! 现在启动一个VirtualBox VM。 如果要拍摄虚拟机的屏幕快照,请双击桌面上的vboxscreenshot.sh
图标。 单击运行
时询问您是否要运行“vboxscreenshot.sh”或显示其内容?
:
之后,您将在桌面上找到屏幕截图(在本例中为1.png
):
3无需额外对话就可以截图
看到你想要运行“vboxscreenshot.sh”还是显示其内容
可能会很烦人吗?
每次你想要截图的对话。 要摆脱对话,打开鹦鹉螺...
...并转到编辑>首选项
:
转到行为
选项卡,选择在可执行文本文件
部分打开时运行可执行文本文件
:
从现在起,当您双击vboxscreenshot.sh
图标时,屏幕截图将自动创建,无需任何对话。
4链接
- VirtualBox: https : //www.virtualbox.org/