Skip to content

API UO Launch ko

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는 OS 셸을 사용하지 않고 콘솔 없는 EXE 실행을 요청합니다. False는 문서 연결을 허용합니다. GUI 프로그램은 자체 창을 띄울 수 있습니다.

반환값

Integer: Process.Start가 프로세스 객체를 반환하면 1(True), 아니면 0(False). 1/True 비교가 가능합니다. PID, 종료 코드, 완료 확인이 아닙니다. 예외는 오류와 0을 반환합니다. 기존 앱이 문서를 열 때 새 프로세스가 없을 수 있으므로 0이 항상 열기 실패를 뜻하지는 않습니다.

동작

  • 지정한 순서의 인수 1~4개만 지원합니다. 기본 폴더를 유지하며 hidden을 지정하려면 세 번째 인수를 빈 문자열로 주십시오. 텍스트 변환은 파일 존재를 미리 확인하지 않습니다.
  • 기본 폴더는 실행 중인 스크립트에서 가져옵니다. hidden=True면 상대 실행 경로를 workingDirectory 기준으로 먼저 찾습니다. 이름 검색과 문서 연결은 시스템에 따라 다르며 전체 경로가 명확합니다. 폴더나 프로그램이 없으면 실행에 실패할 수 있습니다.
  • Launch는 종료를 기다리지 않고 stdout/stderr를 읽지 않으며 스크립트 중지로 프로그램을 종료하지 않습니다. hidden이 모든 GUI 창을 숨기는 것은 아닙니다. 요청 후 Process 객체를 해제해도 실행된 프로그램은 계속 동작합니다.

내부 함수: 호출부터 결과까지

클라이언트 구현 단계이며 추가 Basic 명령이 아닙니다. 예제의 보조 프로시저는 모두 정의되어 있습니다.

1. CompactLaunch

지정한 순서의 인수 1~4개만 지원합니다. 기본 폴더를 유지하며 hidden을 지정하려면 세 번째 인수를 빈 문자열로 주십시오. 텍스트 변환은 파일 존재를 미리 확인하지 않습니다.

기본 폴더는 실행 중인 스크립트에서 가져옵니다. 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 명령이 아닙니다. 예제의 보조 프로시저는 모두 정의되어 있습니다.

예제

기존 보고서 열기

# 기존 보고서 열기
#
# 운영체제에 로컬 프로그램이나 문서(전리품 보고서, 외부 도구 등)를 열도록 요청합니다. 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은 시작 요청 결과를 반환하며 내용이나 읽기 완료 확인이 아닙니다.

편집기에 공백 경로 전달

# 편집기에 공백 경로 전달
#
# 운영체제에 로컬 프로그램이나 문서(전리품 보고서, 외부 도구 등)를 열도록 요청합니다. 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 목록인 log-files.txt를 만들거나 덮어씁니다. 빈 세 번째 인수는 스크립트 폴더, 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를 만들거나 덮어씁니다. 빈 세 번째 인수는 스크립트 폴더, True는 숨긴 콘솔입니다. Main의 True는 시작만 확인하므로 파일이 아직 준비되지 않았을 수 있습니다. 로그 없음이나 도구 오류는 이미 반환된 결과를 바꾸지 않습니다.

Clone this wiki locally