核心代碼(標準庫方式,推薦)
import winex; // 窗口控制庫
import process; // 進程控制庫
io.open() // 打開控制台
process.execute("notepad.exe") // 啟動記事本
var hwnd = winex.waitActive(, , "Notepad") // 等待激活並獲取句柄
var tid, pid = win.getThreadProcessId(hwnd) // 獲取進程 ID
var prcs = process(pid) // 打開進程對象
// 1. 獲取主模塊完整路徑
var exePath = prcs.getPath()
io.print("進程路徑:", exePath)
// 2. 遍歷所有加載模塊 (DLL/EXE)
for moduleEntry in prcs.eachModule() {
io.print("模塊路徑:", moduleEntry.szExePath)
}
精簡版(僅需進程 ID)
import process; import win;
hwnd = 199492; // 已知窗口句柄
tid, pid = win.getThreadProcessId(hwnd);
path = process.getPath(pid); // 直接由 PID 獲取路徑
win.msgbox(path, "AAuto");
優勢說明
- 標準庫封裝:底層已處理 OpenProcess、GetModuleFileNameEx、EnumProcessModules 等複雜 API 與結構體。
- 穩定跨版本:避免手工調用 API 因結構體對齊、指針運算導致的崩潰。
- 功能豐富:
process 對象同時提供模塊枚舉、線程枚舉、內存讀寫等高級功能。
適用場景
- 自動化測試腳本需定位被測程序安裝路徑
- 安全工具掃描進程加載的可疑 DLL
- 部署腳本驗證運行環境完整性