星期四, 11月 27, 2025

Autohotkey 自動監測啟動 VirtualBox VM

用 GPT 產生的腳本,蠻好用的 XD。作用是在每次 Windows 開機時,自動監測某個 VirtualBox VM 是否已經自動運行。如果沒有運行,就自動啟動它。

需求背景是研究計畫中請了一位學弟妹幫忙,而標註程式需要用到 Windows,結果學弟家裡只能使用 Mac 囧,只好自己在 VirtualBox 上架設一個 VM。如果不這樣做,線上的 VPS 提供者所給的套餐都很貴資源又少。用 1GB 或 2GB 的 RAM 搭一個 shared vCPU core 跑 Windows,性能實在不敢想像。

自己電腦建 VM,然後把 RAM 和 Disk 切多一些,使用FRP Tunnel出去,體驗實在好太多。唯一問題就是 ADSL 有時不穩定,這點還要設法剋服。

; --- settings ---
VBoxManage := "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
VMName := "win10"
CheckIntervalMs := 1000 ; how often to check when running
BackoffAfterStartMs := 5000 ; wait a bit after starting to avoid rapid retries
; -----------------

#NoEnv
#SingleInstance, Force
SetBatchLines, -1

Loop
{
	; Build: "C:...\VBoxManage.exe" list runningvms | findstr /I /C:""Win10""
	Cmd := """"  VBoxManage  """" "list runningvms | findstr /I /C:" """""" VMName  """"""
	RunWait, % ComSpec " /C " Cmd, , Hide
	if (ErrorLevel != 0) {
	; Not found -> start headless
		Run, % """" VBoxManage """ startvm """ VMName """ --type headless", , Hide
		Sleep, %BackoffAfterStartMs%
	} else 
	{
		Sleep, %CheckIntervalMs%
	}
}
全文連結

0 意見: