Skip to content

API UO Launch ja

Codex edited this page Oct 3, 2026 · 1 revision

UO.Launch

Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

UO.Exec · UO.Launch · UO.CallSub · UO.FunRunning · UO.SubExists

ClassicUO • Runtime API

ローカルのプログラムや文書(戦利品の報告や外部ツールなど)を開くよう OS に要求します。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 は OS シェルを使わずコンソールなしの EXE 起動を要求します。False は文書の関連付けを許可します。GUI アプリは独自ウィンドウを表示する場合があります。

戻り値

Integer:Process.Start がプロセスオブジェクトを返せば1(True)、それ以外は0(False)。1/True と比較可能。PID、終了コード、完了確認ではありません。例外ではエラー表示と0。既存アプリが文書を開く場合、新プロセスが返らず0でも開けていることがあります。

動作

  • 示した順序で1~4引数だけを受け取ります。既定フォルダーのまま hidden を指定するには第3引数を空文字列にします。文字列変換でファイル存在確認はしません。
  • 既定フォルダーは実行中スクリプトから取得します。hidden=True の相対プログラムパスはまず workingDirectory を基準に探します。名前検索や関連付けはシステム依存です。完全パスが明確で、フォルダーや実行ファイルがなければ失敗する場合があります。
  • Launch は終了を待たず stdout/stderr を取得せず、スクリプト停止でも外部プログラムを終了しません。hidden はすべての GUI を不可視にする保証ではありません。要求後 Process オブジェクトを解放しますが、プログラムは動作を続けます。

内部関数:呼び出しから結果まで

以下はクライアントの実装段階で、追加の Basic 命令ではありません。補助プロシージャはすべて定義されています。

1. CompactLaunch

示した順序で1~4引数だけを受け取ります。既定フォルダーのまま hidden を指定するには第3引数を空文字列にします。文字列変換でファイル存在確認はしません。

既定フォルダーは実行中スクリプトから取得します。hidden=True の相対プログラムパスはまず workingDirectory を基準に探します。名前検索や関連付けはシステム依存です。完全パスが明確で、フォルダーや実行ファイルがなければ失敗する場合があります。

プロジェクトのソース: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; 関数 CompactLaunch.

2. Launch / Process.Start

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 命令ではありません。補助プロシージャはすべて定義されています。

使用例

既存の報告を開く

# 既存の報告を開く
#
# ローカルのプログラムや文書(戦利品の報告や外部ツールなど)を開くよう OS に要求します。Basic スクリプトには StartScript を使います。
#
# Integer:Process.Start がプロセスオブジェクトを返せば1(True)、それ以外は0(False)。1/True
# と比較可能。PID、終了コード、完了確認ではありません。例外ではエラー表示と0。既存アプリが文書を開く場合、新プロセスが返らず0でも開けていることがあります。

SUB Main()
    # loot-report.txt をスクリプトの隣に置きます。OS が .txt の関連付けを使います。Main の戻り値は起動要求の結果で、内容や読了確認ではありません。

    Dim started = UO.Launch("loot-report.txt")
    Return started
END SUB

パラメーターと実行の説明:

  • loot-report.txt をスクリプトの隣に置きます。OS が .txt の関連付けを使います。Main の戻り値は起動要求の結果で、内容や読了確認ではありません。

空白入りパスをエディターへ渡す

# 空白入りパスをエディターへ渡す
#
# ローカルのプログラムや文書(戦利品の報告や外部ツールなど)を開くよう OS に要求します。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 は通常ウィンドウを許可します。

コンソールなしでログ一覧を作る

# コンソールなしでログ一覧を作る
#
# ローカルのプログラムや文書(戦利品の報告や外部ツールなど)を開くよう OS に要求します。Basic スクリプトには StartScript を使います。
#
# Integer:Process.Start がプロセスオブジェクトを返せば1(True)、それ以外は0(False)。1/True
# と比較可能。PID、終了コード、完了確認ではありません。例外ではエラー表示と0。既存アプリが文書を開く場合、新プロセスが返らず0でも開けていることがあります。

SUB Main()
    # Windows/cmd.exe がスクリプトフォルダーに *.log 一覧の log-files.txt を作成・上書きします。第3引数の空文字列は同フォルダー、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 一覧の log-files.txt を作成・上書きします。第3引数の空文字列は同フォルダー、True は非表示コンソールです。Main の True は起動だけを示し、ファイルは未完成の場合があります。該当ログなし・ツールのエラーは先に返った結果を変更しません。

Clone this wiki locally