Tôi muốn điều tương tự và cuối cùng đã giải quyết nó mà không cần sử dụng Guestcontrol. Trên máy chủ MacOS X của tôi, tôi có một thư mục (tên Windows) mà máy khách vbox của tôi đang chạy Win7 đã được ánh xạ là Z :. Tôi sử dụng các tập tin giả để liên lạc giữa máy chủ và khách hàng của mình như thế này:
Trên máy chủ Mac: - đã tạo một tập lệnh shell hoàn chỉnh với một biểu tượng cho mỗi ứng dụng windows mà tôi muốn bắt đầu trong Win-client. Về cơ bản, những gì họ làm là đảm bảo rằng VirtualBox chưa được khởi động trước đó và sau đó tạo một "khởi động ứng dụng cụ thể này" trong thư mục dùng chung mà Windows có thể đọc sau khi khởi động. Ví dụ về những gì một kịch bản như vậy là như thế này:
#!/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
Sau đó, trên máy khách windows tôi có một tập lệnh phù hợp (tệp BAT) trong thư mục Khởi động giống như thế này:
@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
Bằng cách này, bất cứ khi nào tôi muốn thêm biểu tượng khởi động máy khách mới trên máy Mac của mình, tôi sao chép tập lệnh shell, phát minh tệp giả mới và thêm các dòng khởi động phù hợp trong tập lệnh BAT trên máy khách. Hoạt động tuyệt vời và tôi nghĩ rằng nó phù hợp với ý tưởng của Martys trong bài trước.