Chciałem tego samego i ostatecznie rozwiązałem go bez użycia guestcontrol. Na moim hoście MacOS X mam folder (o nazwie Windows), który mój klient vbox z uruchomionym Win7 zamapował na Z :. Korzystam z plików zastępczych do komunikacji między hostem a moimi klientami w następujący sposób:
Na hoście Mac: - utworzyłem jeden skrypt powłoki wraz z ikoną dla każdej aplikacji Windows, którą chciałem uruchomić w Win-kliencie. Po prostu upewniają się, że VirtualBox nie został wcześniej uruchomiony, a następnie tworzy plik „uruchom tę konkretną aplikację” w folderze współdzielonym, który Windows może odczytać po uruchomieniu. Przykładem takiego skryptu jest:
#!/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
Następnie na kliencie Windows mam odpowiedni skrypt (plik BAT) w folderze Autostart, który wygląda następująco:
@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
W ten sposób, za każdym razem, gdy chcę dodać nową ikonę uruchamiania klienta na komputerze Mac, kopiuję skrypt powłoki, wymyślam nowy plik zastępczy i dodaje pasujące wiersze uruchamiania w skrypcie BAT na kliencie. Działa świetnie i myślę, że jest to zgodne z pomysłem Martys z poprzedniego postu.