Skip to content

API UO Launch uk

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

Просить ОС відкрити локальну програму або документ: звіт про здобич чи зовнішню утиліту. Для 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: 1 (True), якщо Process.Start повернув об’єкт процесу; інакше 0 (False). Це не PID, код виходу чи завершення роботи. Виняток дає повідомлення та 0. Документ може відкритися у вже запущеній програмі без нового процесу, тому 0 не завжди означає відмову.

Поведінка

  • Аргументів від одного до чотирьох у наведеному порядку. Для hidden зі стандартною папкою передайте порожній третій аргумент. Перетворення на текст не перевіряє наявність файлу.
  • Стандартна папка належить поточному виконуваному скрипту. При hidden=True відносний EXE спочатку шукається в workingDirectory. Пошук і асоціації залежать від ОС; повний шлях точніший. Відсутня програма чи папка може спричинити помилку.
  • Launch не чекає завершення, не читає stdout/stderr й не закриває програму при зупинці скрипта. hidden не гарантує відсутності всіх GUI-вікон. Об’єкт Process звільняється після запиту, сама програма працює далі.

Внутрішні функції: від виклику до результату

Це етапи реалізації клієнта, а не додаткові команди Basic. Допоміжні процедури наведено повністю.

1. CompactLaunch

Аргументів від одного до чотирьох у наведеному порядку. Для hidden зі стандартною папкою передайте порожній третій аргумент. Перетворення на текст не перевіряє наявність файлу.

Стандартна папка належить поточному виконуваному скрипту. При hidden=True відносний EXE спочатку шукається в workingDirectory. Пошук і асоціації залежать від ОС; повний шлях точніший. Відсутня програма чи папка може спричинити помилку.

Код проєкту: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функція CompactLaunch.

2. Launch / Process.Start

Launch не чекає завершення, не читає stdout/stderr й не закриває програму при зупинці скрипта. hidden не гарантує відсутності всіх GUI-вікон. Об’єкт Process звільняється після запиту, сама програма працює далі.

Integer: 1 (True), якщо Process.Start повернув об’єкт процесу; інакше 0 (False). Це не PID, код виходу чи завершення роботи. Виняток дає повідомлення та 0. Документ може відкритися у вже запущеній програмі без нового процесу, тому 0 не завжди означає відмову.

Код проєкту: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функція Launch / Process.Start.

Це етапи реалізації клієнта, а не додаткові команди Basic. Допоміжні процедури наведено повністю.

Приклади

Відкрити звіт

# Відкрити звіт
#
# Просить ОС відкрити локальну програму або документ: звіт про здобич чи зовнішню утиліту. Для
# Basic-скрипта потрібна StartScript.
#
# Integer: 1 (True), якщо Process.Start повернув об’єкт процесу; інакше 0 (False). Це не 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: 1 (True), якщо Process.Start повернув об’єкт процесу; інакше 0 (False). Це не 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: 1 (True), якщо Process.Start повернув об’єкт процесу; інакше 0 (False). Це не PID,
# код виходу чи завершення роботи. Виняток дає повідомлення та 0. Документ може відкритися у вже
# запущеній програмі без нового процесу, тому 0 не завжди означає відмову.

SUB Main()
    # Windows/cmd.exe створює або перезаписує log-files.txt зі списком *.log у папці скрипта.
    # Порожній третій аргумент обирає цю папку, True приховує консоль. Повернене True означає лише
    # старт: файл ще може бути не готовий; відсутність журналів або помилка утиліти не змінює
    # результат Launch.

    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 приховує консоль. Повернене True означає лише старт: файл ще може бути не готовий; відсутність журналів або помилка утиліти не змінює результат Launch.

Clone this wiki locally