-
Notifications
You must be signed in to change notification settings - Fork 0
API UO Launch zh tw
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
UO.Exec · UO.Launch · UO.CallSub · UO.FunRunning · UO.SubExists
ClassicUO • Runtime API
要求作業系統開啟本機程式或文件,例如戰利品報告或外部工具。Basic 腳本應使用 StartScript。
UO.Launch(file:Any) -> Integer
UO.Launch(file:Any, parameters:Any) -> Integer
UO.Launch(file:Any, parameters:Any, workingDirectory:Any) -> Integer
UO.Launch(file:Any, parameters:Any, workingDirectory:Any, hidden:Any) -> Integer
-
file— 必要的程式/文件名稱或路徑,轉為文字並去除兩端空白。空值回傳 0 及訊息。建議完整路徑;不要替 file 本身再加外層引號。 -
parameters— 選用的外部程式參數字串,預設空白。其中含空格的路徑用 Chr(34) 加雙引號。這些不是 Basic 參數。 -
workingDirectory— 選用工作目錄。省略或空字串使用目前腳本的目錄;runtime 無法取得時使用用戶端程序的工作目錄。不一定是遊戲或 EXE 的目錄。 -
hidden— 選用 Boolean,預設 False。True 停用系統殼層,要求執行 EXE 且不建立主控台視窗。False 允許文件關聯;GUI 程式仍可能開啟自己的視窗。
Integer:Process.Start 回傳程序物件時為 1(True),否則 0(False);可比較 1/True。不是 PID、結束代碼或完成確認。例外會顯示錯誤並回傳 0。文件可能由既有程式開啟而沒有新程序,所以 0 不一定代表文件未開啟。
- 僅支援依序一至四個參數。要設定 hidden 但保留預設目錄,第三個參數傳空字串。轉為文字時不會先檢查檔案是否存在。
- 預設目錄來自正在執行的腳本。hidden=True 時先以 workingDirectory 尋找相對程式路徑。名稱搜尋及文件關聯依系統而異;完整路徑較明確。缺少程式或目錄會導致啟動失敗。
- Launch 不等待結束、不讀取 stdout/stderr,也不因腳本停止而終止外部程式。hidden 不保證所有 GUI 視窗不可見。要求後會釋放 Process 物件,已啟動的程式繼續執行。
以下是用戶端的實作階段,不是額外的 Basic 命令。範例輔助程序都有完整定義。
僅支援依序一至四個參數。要設定 hidden 但保留預設目錄,第三個參數傳空字串。轉為文字時不會先檢查檔案是否存在。
預設目錄來自正在執行的腳本。hidden=True 時先以 workingDirectory 尋找相對程式路徑。名稱搜尋及文件關聯依系統而異;完整路徑較明確。缺少程式或目錄會導致啟動失敗。
專案原始碼: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; 函式 CompactLaunch.
Launch 不等待結束、不讀取 stdout/stderr,也不因腳本停止而終止外部程式。hidden 不保證所有 GUI 視窗不可見。要求後會釋放 Process 物件,已啟動的程式繼續執行。
Integer:Process.Start 回傳程序物件時為 1(True),否則 0(False);可比較 1/True。不是 PID、結束代碼或完成確認。例外會顯示錯誤並回傳 0。文件可能由既有程式開啟而沒有新程序,所以 0 不一定代表文件未開啟。
專案原始碼: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; 函式 Launch / Process.Start.
以下是用戶端的實作階段,不是額外的 Basic 命令。範例輔助程序都有完整定義。
# 開啟既有報告
#
# 要求作業系統開啟本機程式或文件,例如戰利品報告或外部工具。Basic 腳本應使用 StartScript。
#
# Integer:Process.Start 回傳程序物件時為 1(True),否則 0(False);可比較 1/True。不是 PID、結束代碼或完成確認。例外會顯示錯誤並回傳
# 0。文件可能由既有程式開啟而沒有新程序,所以 0 不一定代表文件未開啟。
SUB Main()
# 將既有 loot-report.txt 放在腳本旁。系統使用 .txt 關聯。Main 回傳啟動要求的結果,不是內容或已閱讀的確認。
Dim started = UO.Launch("loot-report.txt")
Return started
END SUB參數與執行說明:
- 將既有 loot-report.txt 放在腳本旁。系統使用 .txt 關聯。Main 回傳啟動要求的結果,不是內容或已閱讀的確認。
# 傳入含空格的報告路徑
#
# 要求作業系統開啟本機程式或文件,例如戰利品報告或外部工具。Basic 腳本應使用 StartScript。
#
# Integer:Process.Start 回傳程序物件時為 1(True),否則 0(False);可比較 1/True。不是 PID、結束代碼或完成確認。例外會顯示錯誤並回傳
# 0。文件可能由既有程式開啟而沒有新程序,所以 0 不一定代表文件未開啟。
SUB Main()
# 目錄及報告必須存在,請換成自己的路徑。Chr(34) 在 arguments 內包住完整報告路徑。系統必須能找到 notepad.exe;False 允許一般視窗。
Dim report = "C:\UO Scripts\loot report.txt"
Dim arguments = Chr(34) & report & Chr(34)
Return UO.Launch("notepad.exe", arguments, "C:\UO Scripts", False)
END SUB參數與執行說明:
- 目錄及報告必須存在,請換成自己的路徑。Chr(34) 在 arguments 內包住完整報告路徑。系統必須能找到 notepad.exe;False 允許一般視窗。
# 不顯示主控台地列出日誌
#
# 要求作業系統開啟本機程式或文件,例如戰利品報告或外部工具。Basic 腳本應使用 StartScript。
#
# Integer:Process.Start 回傳程序物件時為 1(True),否則 0(False);可比較 1/True。不是 PID、結束代碼或完成確認。例外會顯示錯誤並回傳
# 0。文件可能由既有程式開啟而沒有新程序,所以 0 不一定代表文件未開啟。
SUB Main()
# Windows/cmd.exe 在腳本目錄建立或覆寫 log-files.txt,列出 *.log。第三個空參數使用腳本目錄,True 隱藏主控台。Main 的 True
# 只確認程序啟動:檔案可能尚未完成;找不到日誌或工具錯誤不會改變已回傳的結果。
Dim started = UO.Launch("cmd.exe", "/d /c dir /b *.log > log-files.txt", "", True)
If started = 0 Then
Return False
End If
Return True
END SUB參數與執行說明:
- Windows/cmd.exe 在腳本目錄建立或覆寫 log-files.txt,列出 *.log。第三個空參數使用腳本目錄,True 隱藏主控台。Main 的 True 只確認程序啟動:檔案可能尚未完成;找不到日誌或工具錯誤不會改變已回傳的結果。
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь