ฉันต้องการสิ่งเดียวกันและลงเอยด้วยการแก้ไขโดยไม่ใช้ guestcontrol บนโฮสต์ MacOS X ของฉันฉันมีโฟลเดอร์ (ชื่อ Windows) ที่ไคลเอ็นต์ vbox ของฉันที่ใช้งาน Win7 ได้แมปเป็น Z: ฉันใช้ไฟล์จำลองเพื่อสื่อสารระหว่างโฮสต์กับลูกค้าของฉันเช่นนี้:
บนโฮสต์ Mac: - สร้างเชลล์สคริปต์หนึ่งตัวพร้อมไอคอนสำหรับแต่ละแอปพลิเคชัน windows ที่ฉันต้องการเริ่มต้นในไคลเอนต์ Win สิ่งที่พวกเขาทำคือทำให้แน่ใจว่า 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 ของฉันฉันคัดลอกเชลล์สคริปต์สร้างไฟล์ดัมมี่ใหม่และเพิ่มบรรทัดเริ่มต้นที่ตรงกันใน BAT-script บนไคลเอ็นต์ ใช้งานได้ดีและฉันคิดว่ามันสอดคล้องกับแนวคิด Martys ในโพสต์ก่อนหน้า