我想要同样的事情,最终在不使用guestcontrol的情况下解决了它。在MacOS X主机上,我有一个文件夹(名为Windows),运行Win7的vbox客户端已将其映射为Z:。我使用伪文件在主机和客户端之间进行通信,如下所示:
在Mac主机上:-为要在Win客户端中启动的每个Windows应用程序创建了一个带有图标的shell脚本。他们的基本操作是确保VirtualBox之前尚未启动,然后在Windows可以在启动后读取的共享文件夹中创建“启动此特定应用程序”文件。这样的脚本的示例如下:
#!/bin/bash
# bail if vbox is already started/running windoze...
ps ax | grep -v grep | grep 'Windows 7' > /dev/null
if [ $? -eq 0 ]; then
echo "Sorry, Windows is already running."
exit 0
fi
# send a message to Windoze which program to start...
touch /Users/urban/Documents/Windows/START_TS2000I.TXT
# startup Windoze in seamless mode
vboxmanage setextradata 'Windows 7' GUI/Seamless on
vboxmanage startvm 'Windows 7' &
exit 0
然后在Windows客户端上,我在启动文件夹中有一个匹配的脚本(BAT文件),如下所示:
@echo off
pushd "C:\Program Files\Omega Research\Program"
if exist Z:\start_ts2000i.txt start ORTrade.exe
if exist Z:\start_ts2000i.txt del Z:\start_ts2000i.txt
.
.
.
exit 0
这样,每当我想在Mac上添加新的客户端启动图标时,我都会复制shell脚本,创建新的虚拟文件并在客户端的BAT脚本中添加匹配的启动行。效果很好,我认为这与上一篇文章中的Martys想法相符。