Skip to content

API UO Launch it

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

Chiede al sistema operativo di aprire un programma o documento locale, ad esempio un rapporto del bottino o un’utilità. Per gli script Basic usare StartScript.

Sintassi esatta

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

Parametri

  • file — Nome/percorso obbligatorio di programma o documento, convertito in testo e privato degli spazi esterni. Vuoto restituisce 0 e un messaggio. Preferire il percorso completo, senza aggiungere apici attorno a file.
  • parameters — Stringa facoltativa degli argomenti esterni, normalmente vuota. Quotare i percorsi con spazi al suo interno usando Chr(34). Non sono parametri Basic.
  • workingDirectory — Cartella di lavoro facoltativa. Omessa o vuota usa la cartella dello script corrente; se indisponibile, la cartella di lavoro del processo client. Non è necessariamente quella del gioco o dell’EXE.
  • hidden — Boolean facoltativo, False predefinito. True disabilita la shell e richiede un eseguibile senza console. False ammette le associazioni dei documenti. Un’applicazione GUI può comunque aprire finestre.

Restituisce

Integer: 1 (True) se Process.Start restituisce un oggetto processo, altrimenti 0 (False). Si può confrontare con 1/True. Non è PID, codice di uscita o conferma del completamento. Le eccezioni segnalano errore e restituiscono 0. Un documento può aprirsi in un’applicazione esistente senza nuovo processo: 0 non prova sempre un fallimento.

Comportamento

  • Da uno a quattro argomenti nell’ordine indicato. Per hidden con cartella predefinita fornire il terzo argomento vuoto. La conversione in testo non verifica l’esistenza del file.
  • La cartella predefinita deriva dallo script in esecuzione. Con hidden=True il percorso relativo dell’eseguibile viene prima cercato rispetto a workingDirectory. Ricerca e associazioni dipendono dal sistema; un percorso completo è meno ambiguo. Programmi o cartelle mancanti possono impedire l’avvio.
  • Launch non attende la fine, non cattura stdout/stderr e non termina il programma quando lo script si ferma. hidden non garantisce l’assenza di finestre GUI. L’oggetto Process viene rilasciato dopo la richiesta; il programma continua.

Funzioni interne: dalla chiamata al risultato

Sono fasi dell’implementazione del client, non comandi Basic aggiuntivi. Le procedure ausiliarie sono definite per intero.

1. CompactLaunch

Da uno a quattro argomenti nell’ordine indicato. Per hidden con cartella predefinita fornire il terzo argomento vuoto. La conversione in testo non verifica l’esistenza del file.

La cartella predefinita deriva dallo script in esecuzione. Con hidden=True il percorso relativo dell’eseguibile viene prima cercato rispetto a workingDirectory. Ricerca e associazioni dipendono dal sistema; un percorso completo è meno ambiguo. Programmi o cartelle mancanti possono impedire l’avvio.

Sorgente del progetto: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; funzione CompactLaunch.

2. Launch / Process.Start

Launch non attende la fine, non cattura stdout/stderr e non termina il programma quando lo script si ferma. hidden non garantisce l’assenza di finestre GUI. L’oggetto Process viene rilasciato dopo la richiesta; il programma continua.

Integer: 1 (True) se Process.Start restituisce un oggetto processo, altrimenti 0 (False). Si può confrontare con 1/True. Non è PID, codice di uscita o conferma del completamento. Le eccezioni segnalano errore e restituiscono 0. Un documento può aprirsi in un’applicazione esistente senza nuovo processo: 0 non prova sempre un fallimento.

Sorgente del progetto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; funzione Launch / Process.Start.

Sono fasi dell’implementazione del client, non comandi Basic aggiuntivi. Le procedure ausiliarie sono definite per intero.

Esempi

Aprire il rapporto

# Aprire il rapporto
#
# Chiede al sistema operativo di aprire un programma o documento locale, ad esempio un rapporto
# del bottino o un’utilità. Per gli script Basic usare StartScript.
#
# Integer: 1 (True) se Process.Start restituisce un oggetto processo, altrimenti 0 (False). Si
# può confrontare con 1/True. Non è PID, codice di uscita o conferma del completamento. Le
# eccezioni segnalano errore e restituiscono 0. Un documento può aprirsi in un’applicazione
# esistente senza nuovo processo: 0 non prova sempre un fallimento.

SUB Main()
    # Collocare loot-report.txt esistente accanto allo script. Il sistema usa l’associazione .txt.
    # Main restituisce l’esito della richiesta, non contenuto o conferma di lettura.

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

Spiegazione dei parametri e dell’esecuzione:

  • Collocare loot-report.txt esistente accanto allo script. Il sistema usa l’associazione .txt. Main restituisce l’esito della richiesta, non contenuto o conferma di lettura.

Percorso con spazi all’editor

# Percorso con spazi all’editor
#
# Chiede al sistema operativo di aprire un programma o documento locale, ad esempio un rapporto
# del bottino o un’utilità. Per gli script Basic usare StartScript.
#
# Integer: 1 (True) se Process.Start restituisce un oggetto processo, altrimenti 0 (False). Si
# può confrontare con 1/True. Non è PID, codice di uscita o conferma del completamento. Le
# eccezioni segnalano errore e restituiscono 0. Un documento può aprirsi in un’applicazione
# esistente senza nuovo processo: 0 non prova sempre un fallimento.

SUB Main()
    # Cartella e rapporto devono esistere: adattarli. Chr(34) quota il percorso dentro arguments.
    # notepad.exe deve essere disponibile. False consente la finestra normale.

    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

Spiegazione dei parametri e dell’esecuzione:

  • Cartella e rapporto devono esistere: adattarli. Chr(34) quota il percorso dentro arguments. notepad.exe deve essere disponibile. False consente la finestra normale.

Elencare i log senza console

# Elencare i log senza console
#
# Chiede al sistema operativo di aprire un programma o documento locale, ad esempio un rapporto
# del bottino o un’utilità. Per gli script Basic usare StartScript.
#
# Integer: 1 (True) se Process.Start restituisce un oggetto processo, altrimenti 0 (False). Si
# può confrontare con 1/True. Non è PID, codice di uscita o conferma del completamento. Le
# eccezioni segnalano errore e restituiscono 0. Un documento può aprirsi in un’applicazione
# esistente senza nuovo processo: 0 non prova sempre un fallimento.

SUB Main()
    # Windows/cmd.exe crea o sovrascrive log-files.txt nella cartella dello script con i nomi *.log.
    # Terzo argomento vuoto: cartella dello script; True: console nascosta. True da Main conferma
    # solo l’avvio; il file può non essere pronto e nessun log trovato o un errore dell’utilità non
    # modifica il risultato precedente.

    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

Spiegazione dei parametri e dell’esecuzione:

  • Windows/cmd.exe crea o sovrascrive log-files.txt nella cartella dello script con i nomi *.log. Terzo argomento vuoto: cartella dello script; True: console nascosta. True da Main conferma solo l’avvio; il file può non essere pronto e nessun log trovato o un errore dell’utilità non modifica il risultato precedente.

Clone this wiki locally