Dokumentacja CLI

Dokumentacja wersji v0.1.0-beta.3Zobacz źródło na GitHubie

Tłumaczenie oryginalnej strony w języku angielskim dla OmsiLaunch 0.1.0-beta3. Wiążąca jest strona angielska: w razie rozbieżności obowiązują strona angielska i kod.

Ta strona stanowi kompletną, normatywną dokumentację wiersza poleceń OmsiLaunch 0.1.0-beta3: trzech plików wykonywalnych, gramatyki argumentów, kolejności obsługi (dispatch), każdego słowa polecenia, każdej hierarchicznej ścieżki polecenia, każdej flagi, kopert wyjściowych oraz zachowania każdego polecenia w razie błędu. Została wygenerowana na podstawie tools\OmsiLaunch.Cli\Program.cs (CliProgram.RunAsync, OwnerSession.RunAsync, CliInput.Parse, CliInput.KnownFlags, CliInput.AcceptedNoEffectFlags, CliInput.CommandWordsAccepted, CliInput.HierarchicalRoutes, CliInput.BuildSpecAsync, CliEventWatch), tools\OmsiLaunch.Cli\LaunchSpecJson.cs oraz dwóch natywnych nakładek (shim) w tools\OmsiLaunch.Bootstrapper. Wyniki procesów opisano w kodach wyjścia, kody błędów w błędach, a gotowe wywołania w przykładach CLI.

Pliki wykonywalne#

PlikPodsystemRolaRóżnice
OmsiLaunch.exeKonsolaNatywny bootstrapper (OmsiLaunch.Bootstrapper.cpp): ustala własny katalog, dzieli wiersz poleceń na tokeny za pomocą CommandLineToArgvW, lokalizuje hostfxr poprzez nethost.dll i uruchamia OmsiLaunch.Controller.dll z tymi samymi argumentami.Dane wyjściowe są zapisywane na konsolę; kod wyjścia procesu jest kodem wyjścia zarządzanego kontrolera albo kodem nakładki 100..106, jeśli nie udało się uruchomić hosta .NET.
OmsiLaunchW.exeWindows (GUI)Ta sama nakładka (OmsiLaunch.WindowsHost.cpp) zbudowana dla podsystemu Windows. Przed uruchomieniem kontrolera ustawia zmienną środowiskową OMSILAUNCH_WINDOWS_HOST=1.Brak konsoli: dane wyjściowe konsoli są wyciszane, chyba że podano --json (WindowsHost.SuppressConsole), błędy są wyświetlane w oknach komunikatu (WindowsHost.ShowFailure: komunikat, Code: OL_E_... oraz wskazówka See .omsilaunch\diagnostics for details.), a błąd nakładki 100..106 jest wyświetlany jako OmsiLaunch could not start the .NET host (code N). Pełny opis zachowania: dokumentacja OmsiLaunchW.exe.
OmsiLaunch.Controller.dllZarządzany (x64, net6.0-windows, Windows Forms)Właściwy kontroler. Użytkownicy nigdy nie wywołują go bezpośrednio; obie nakładki przekazują ścieżkę kontrolera jako pierwszy argument hosta, dzięki czemu nigdy nie pojawia się ona na publicznej liście argumentów.Wymaga runtime .NET 6 x64 z Microsoft.WindowsDesktop.App; patrz instalacja.

nethost.dll musi znajdować się obok nakładek. Same nakładki nie odczytują żadnych argumentów; każdy argument trafia bez zmian do CliInput.Parse, więc OmsiLaunch.exe i OmsiLaunchW.exe akceptują dokładnie tę samą składnię.

Model wywołania#

Gramatyka argumentów (CliInput.Parse)#

PostaćZnaczenie
/key:value, /key, -key:value, -keyFlaga. Wielkość liter w kluczu nie ma znaczenia; wartością jest wszystko po pierwszym :. Nieznane klucze kończą się błędem OL_E_INVALID_ARGUMENT (Unknown argument: ...), kod wyjścia 2.
--key=valueArgument runtime dla wybranej operacji runtime (na przykład --handle=rv-000001). Każdy token -- zawierający = jest argumentem runtime, nigdy flagą.
--json, /jsonWyjście strukturalne (patrz Formaty wyjścia). --json jest jedynym znaczącym tokenem -- bez =; jest on interpretowany jako flaga /json.
samo słowoJeśli nie pojawiło się jeszcze żadne słowo polecenia, a słowo jest jednym ze słów poleceń, staje się poleceniem. Gdy słowo polecenia jest już obecne, każde kolejne samo słowo jest słowem polecenia (ścieżką polecenia). W przeciwnym razie pierwsze samo słowo jest katalogiem głównym instalacji, a każde kolejne samo słowo jest dołączane do ścieżki polecenia.

Konsekwencje: hierarchicznej ścieżki polecenia (time get) nie można połączyć z argumentem instalacji umieszczonym po niej (time get D:\OMSI jest nieznaną ścieżką polecenia time get d:\omsi, kod wyjścia 2). D:\OMSI time get jest akceptowane, ale oznacza tryb właściciela (uruchamiana jest nowa sesja, a operacja wykonuje się w niej jednokrotnie). Błędy parsowania (ArgumentException, FormatException, InvalidDataException, OverflowException) oraz błędy profilu sesji (SessionProfileException) są zgłaszane, zanim cokolwiek zostanie uruchomione, zawsze z kodem wyjścia 2.

Katalog główny instalacji#

  • Jawny argument instalacji w postaci samego słowa ma pierwszeństwo przed RootPath w pliku /spec (CliInput.BuildSpecAsync).
  • . oznacza katalog zawierający plik wykonywalny (AppContext.BaseDirectory), nigdy katalog roboczy wywołującego (CliInput.ResolveInstallationRoot). Opiera się na tym pakiet przenośny.
  • Gdy argument zostanie pominięty, operacje trybu właściciela (/new, /saved, /spec, /list, /recovery-status, /recover) również używają katalogu pliku wykonywalnego. Ścieżka jest normalizowana za pomocą Path.GetFullPath.
  • Polecenia trybu klienta nigdy nie przyjmują argumentu instalacji: adresują punkt końcowy lokalnego sterowania instalacji, w której znajduje się plik wykonywalny (AppContext.BaseDirectory). Patrz lokalne sterowanie.

Właściciel i klient#

  • Właściciel: proces, który planuje, uruchamia, nadzoruje i przywraca sesję (OwnerSession.RunAsync). Utrzymuje dzierżawę instalacji (Local\OmsiLaunch.Installation.<sha256(root)>) i transakcję konfiguracji, udostępnia punkt końcowy lokalnego sterowania, dopóki sesja trwa, i wyświetla ikonę w obszarze powiadomień. Na instalację przypada dokładnie jeden właściciel: jeśli właściciel już odpowiada na session.status w punkcie końcowym sterowania, drugie uruchomienie kończy się błędem OL_E_SESSION_ALREADY_ACTIVE (kod wyjścia 7).
  • Klient: każde wywołanie bez argumentu instalacji, które wysyła session status, session stop, events read, events watch lub operację runtime. Jest ono przekazywane przez potok lokalnego sterowania; bez właściciela kończy się błędem OL_E_NO_ACTIVE_SESSION (kod wyjścia 4).

Kolejność obsługi (CliProgram.RunAsync)#

  1. /silent (gdy proces nie działa już pod OmsiLaunchW.exe): uruchomienie OmsiLaunchW.exe z katalogu pliku wykonywalnego przez ShellExecute (bez dziedziczenia uchwytów) z tymi samymi argumentami bez /silent/--silent, zapisanie koperty silent (delegated, host_process_id) i zwrócenie 0. Proces konsolowy nie czeka na sesję; patrz OmsiLaunchW.exe. OL_E_WINDOWS_HOST_MISSING / OL_E_WINDOWS_HOST_START_FAILED zwracają 7.
  2. /version: koperta version z polami product, version (informacyjna wersja zestawu, pobierana z OmsiLaunch.Version.props, 0.1.0-beta3), protocol_version (0.1), supported_family (OMSI_2_3_004_COMMON); kod wyjścia 0.
  3. capabilities: koperta z każdym deskryptorem PublicStableBeta lub PublicExperimental z PublicCapabilityRegistry; kod wyjścia 0.
  4. help [family]: koperta help z polami usage, product_version, protocol_version, family oraz publicznymi commands (CliRoute, Description, Classification, RuntimeValidation), opcjonalnie filtrowanymi według rodziny; kod wyjścia 0.
  5. profiles: koperta z family i obsługiwanymi (supported) wariantami pliku wykonywalnego (ALTERNATE_LAA 692EBFBF..., runtime_validated=true; hash Steam LAA 7DAB063D... z validation_status=pending_beta_field_validation); kod wyjścia 0.
  6. Operacja runtime klienta (bez argumentu instalacji, ze ścieżką polecenia lub /runtime:): argumenty są sprawdzane przez PublicCapabilityRegistry.ValidateRuntimeArguments (OL_E_RUNTIME_OPERATION_UNKNOWN, OL_E_RUNTIME_ARGUMENT_REQUIRED, kod wyjścia 2), a następnie runtime.execute jest przekazywane z limitem czasu 8 s (30 s dla road-vehicles.spawn).
  7. Klienckie session status (750 ms), session stop (powiązane z identyfikatorem aktywnej sesji, 750 ms), events read (750 ms), events watch (odpytywanie co 250 ms aż do Ctrl+C).
  8. detect lub brak jakichkolwiek argumentów (brak instalacji, polecenia, /?, /spec, flagi uruchomienia, flagi odzyskiwania i /list): wyliczenie procesów Omsi i sondowanie punktu końcowego sterowania (250 ms); koperta detect; kod wyjścia 0.
  9. /? lub /help: wypisanie tekstu pomocy, kod wyjścia 0. Każde inne wywołanie, które zawiera słowo polecenia, ale nie ma obsługiwanej ścieżki polecenia (na przykład samo d3d albo session status D:\OMSI), wypisuje tekst pomocy i kończy się kodem 2.
  10. Tryb właściciela. Warunki wstępne: plugins\OmsiLaunch.Plugin.opl i plugins\OmsiLaunch.Native.x86.dll muszą istnieć obok pliku wykonywalnego (OL_E_RUNTIME_INSTALLATION_INCOMPLETE, kod wyjścia 7). Plik release-manifest.json obok pliku wykonywalnego, jeśli istnieje, dostarcza oczekiwane hashe wtyczek.
  11. /recovery-status / /recover: RecoverPendingAsync; koperta recover z polami pending, recovered, diagnostics; kod wyjścia 8 tylko wtedy, gdy zażądano przywrócenia i nie zostało ono ukończone, w przeciwnym razie 0.
  12. /list:<category>: DiscoverAsync; koperta content.list; kod wyjścia 0.
  13. Zbudowanie LaunchSpec (BuildSpecAsync), zaplanowanie go (PlanSessionAsync) i wypisanie planu. /plan lub /validate: kod wyjścia 0, jeśli IsRunnable, w przeciwnym razie 1. Plan niemożliwy do uruchomienia nigdy nie uruchamia OMSI (kod wyjścia 1); pod OmsiLaunchW.exe uruchomienie z planem niemożliwym do uruchomienia wyświetla jego ostatni komunikat diagnostyczny OL_E_ w oknie komunikatu (audyt dokumentacji BUG-06). Planowanie weryfikuje też zainstalowany zestaw plików stałej wtyczki (closure) względem release-manifest.json, więc brakująca lub zmieniona wtyczka sprawia, że plan jest niemożliwy do uruchomienia (OL_E_PERMANENT_PLUGIN_*).
  14. Sondowanie istniejącego właściciela (OL_E_SESSION_ALREADY_ACTIVE, kod wyjścia 7), a następnie OwnerSession.RunAsync.

Cykl życia właściciela (OwnerSession.RunAsync)#

  1. StartSessionAsync(plan). Od tego momentu każda ścieżka zakończenia dociera do CloseAsync w bloku finally: wyjątki, Ctrl+C (Console.CancelKeyPress), zamknięcie konsoli / wylogowanie (AppDomain.ProcessExit z budżetem 4 s na zatrzymanie i przywrócenie; wszystko, co pozostanie, zostanie odzyskane z dziennika przy następnym uruchomieniu), „End session” w obszarze powiadomień, session.stop przez potok oraz /observe-seconds.
  2. Ikona w obszarze powiadomień jest tworzona, chyba że w specyfikacji ustawiono Presentation.SuppressTrayIcon.
  3. Oczekiwanie na Running przez StartupTimeoutSeconds + 5 sekund. Stan jest wypisywany. Jeśli stanem nie jest Running, kod wyjścia 1 (OmsiLaunchW.exe wyświetla The OMSI session did not reach gameplay. z ostatnim komunikatem diagnostycznym OL_E_ lub OL_E_SESSION_START_FAILED).
  4. Uruchamiane są partie walidacyjne (/runtime-batch, /runtime-write-batch, /d3d-batch), które zapisują swoje artefakty.
  5. Uruchamiany jest punkt końcowy lokalnego sterowania.
  6. /runtime:<operation> jest wykonywane jednokrotnie (5 s, 15 s dla road-vehicles.spawn); wynik jest zapisywany do <root>\.omsilaunch\diagnostics\<sessionId>-runtime-operation.json i wypisywany. Nieudane polecenie runtime nigdy nie kończy sesji (zamiast tego wypisywane jest runtime_error).
  7. Oczekiwanie: z /observe-seconds:n sesja jest zatrzymywana po n sekundach lub wcześniej przy zatrzymaniu z obszaru powiadomień/przez potok albo gdy OMSI się zakończy; bez tej flagi właściciel czeka, aż OMSI się zakończy lub zostanie zażądane zatrzymanie.
  8. Wypisywany jest stan końcowy; kod wyjścia 0, jeśli Completed, w przeciwnym razie 1.

session.stop, „End session” w obszarze powiadomień, Ctrl+C i CloseAsync żądają kanonicznego zatrzymania: OMSI jest kończony przez TerminateProcess (własna procedura zamykania OMSI nie jest wykonywana, a options.cfg nie jest ponownie zapisywany przez OMSI), po czym przywracany jest każdy plik należący do sesji. Patrz cykl życia sesji oraz transakcje i odzyskiwanie.

Słowa poleceń#

Każde słowo akceptowane na pierwszej pozycji (CliInput.CommandWordsAccepted):

SłowoPrzeznaczenieTrybUwagi
capabilitiesLista publicznych możliwościLokalny, bez sesjiKoperta capabilities.
profilesLista obsługiwanych wariantów Omsi.exeLokalny, bez sesjiKoperta profiles.
detectRaport o procesach Omsi.exe i aktywnym właścicieluLokalny, bez sesjiRównież wartość domyślna, gdy nie podano argumentów. Stany: NO_OMSI_FOUND, OMSI_FOUND_UNMANAGED, dla poszczególnych procesów UNKNOWN_BINARY_FOUND, gdy pliku binarnego nie można zbadać; active_omsilaunch_instance, managed_session.
helpPomoc i katalog publicznych poleceńLokalny, bez sesjihelp <family> filtruje według rodziny możliwości (session, time, weather, map, camera, vehicles, player, humans, timetable, scripts, constants, curves, hof, drivers, tickets, d3d, events).
sessionsession status, session stopKlientDokładnie jedno następne słowo; cokolwiek innego wypisuje pomoc, kod wyjścia 2. session plan/session start to nazwy ścieżek API, a nie słowa CLI: należy używać /plan i /new.
eventsevents read, events watchKlientread zwraca jednokrotnie ograniczoną listę zdarzeń; watch wypisuje każde nowe zdarzenie (według Sequence) jako kopertę events.watch co 250 ms aż do Ctrl+C (kod wyjścia 0), 4, gdy żaden właściciel nie odpowiada, 7 przy błędzie sterowania.
timetime get, time setŚcieżka klienta
weatherweather get, weather set, weather actual getŚcieżka klienta
mapmap getŚcieżka klienta
cameracamera get, camera set, camera lock, camera unlockŚcieżka klienta
vehiclesvehicles list, vehicles get, vehicles summary, vehicles spawn, vehicles place-randomŚcieżka klienta
playerplayer getŚcieżka klienta
humanshumans list, humans get, humans summaryŚcieżka klienta
timetabletimetable get, timetable <table> list, timetable logs listŚcieżka klienta
scriptsscripts variable list|get|set, scripts string list|getŚcieżka klienta
constantsconstants list, constants getŚcieżka klienta
curvescurves list, curves evaluateŚcieżka klienta
hofhof getŚcieżka klienta
driversdrivers listŚcieżka klienta
ticketstickets getŚcieżka klienta
d3dZarezerwowane słowo rodzinyBrakd3d nie ma hierarchicznej ścieżki polecenia: d3d texture ... jest nieznaną ścieżką polecenia (kod wyjścia 2), a samo d3d wypisuje pomoc (kod wyjścia 2). Operacje D3D są dostępne przez /runtime:d3d.status, /runtime:d3d.texture.create itd. (patrz Operacje bez ścieżki polecenia).

Hierarchiczne ścieżki poleceń#

CliInput.HierarchicalRoutes mapuje ścieżkę polecenia zapisaną małymi literami na identyfikator operacji runtime. Wszystkie ścieżki poleceń wymagają sesji w stanie Running i są wykonywane przez skrzynkę runtime (mailbox) (ExecuteRuntimeAsync). Zapisy runtime zmieniają wyłącznie stan OMSI w pamięci: nigdy nie dotykają plików, nie są częścią transakcji konfiguracji i nie są cofane przy zatrzymaniu (OMSI jest kończony). Stabilność wynika z PublicCapabilityRegistry i macierzy walidacji; szczegóły i pola wyników opisano w sterowaniu runtime.

Ścieżka poleceniaOperacja runtimeRodzajWymaga RunningZmienia OMSIUdział w przywracaniuStabilnośćUwagi
time gettime.readReadTakNieBrakSTABLE_BETAPola zegara i kalendarza.
time settime.setWriteTakTak (zegar w pamięci)Brak, nie jest cofaneEXPERIMENTALNa przykład --minute=<0..59>; zapis, odczyt zwrotny i przywrócenie zweryfikowane 2026-09-20.
weather getweather.readReadTakNieBrakSTABLE_BETA
weather setweather.setWriteTakNie (zawsze odrzucane)BrakUNAVAILABLEZwraca OL_E_RUNTIME_SETTING_NOT_PERSISTENT; OMSI nadpisuje wartość przy następnym takcie pogody.
weather actual getweather.actual.readReadTakNieBrakEXPERIMENTALStan kontrolera pogody rzeczywistej/ICAO.
map getmap.readReadTakNieBrakSTABLE_BETANazwa mapy, plik, opis, liczba kafelków, zakres lat i strona ruchu; ponownie zweryfikowane w runtime na poprawionym slocie mapy.
camera getcamera.readReadTakNieBrakSTABLE_BETA
camera setcamera.setWriteTakTak (skalary kamery, np. --field_of_view=)Brak, nie jest cofaneEXPERIMENTALZapis i odczyt zwrotny FOV zweryfikowane.
camera lockcamera.lockActionTakTak (zasada o zasięgu sesji)BrakEXPERIMENTALWymaga --family=<0..3> (kierowca=0, pasażer=1, zewnętrzna=2, mapa=3), opcjonalnie --preset=<n> (rodzina 0 lub 1). Potrzebuje pojazdu gracza (na przykład z zapisanej sytuacji). Zweryfikowane w runtime w domknięciu runtime (runtime closure, CAM01); ciąg RuntimeValidation w rejestrze nadal podaje STATICALLY_VALIDATED (patrz możliwości).
camera unlockcamera.unlockActionTakTakBrakEXPERIMENTALZwalnia zasadę ustawioną przez camera lock (CAM01).
vehicles listroad-vehicles.listReadTakNieBrakSTABLE_BETAZwraca uchwyty rv-NNNNNN o zasięgu sesji.
vehicles getroad-vehicle.readReadTakNieBrakSTABLE_BETAWymaga --handle=. Nieaktualny uchwyt: OL_E_RUNTIME_OBJECT_HANDLE_STALE.
vehicles summaryroad-vehicles.readReadTakNieBrakSTABLE_BETALiczniki i stan gracza, bez uchwytów.
vehicles spawnroad-vehicles.spawnActionTakTak (dodaje jeden RoadVehicle)Brak, nie jest usuwanyEXPERIMENTALWymaga --model=Vehicles\...\*.bus. Limit czasu klienta 30 s, limit czasu właściciela 15 s. Nie przypisuje pojazdu gracza. RV-003 RUNTIME_PASS.
vehicles place-randomroad-vehicles.place-randomActionTakTakBrakEXPERIMENTALProfilowane PlaceRandomBus.
player getplayer-vehicle.readReadTakNieBrakSTABLE_BETASemantyczne null, gdy nie ma pojazdu gracza.
humans listhumans.listReadTakNieBrakEXPERIMENTALZwraca uchwyty hb-NNNNNN.
humans gethuman.readReadTakNieBrakEXPERIMENTALWymaga --handle=.
humans summaryhumans.readReadTakNieBrakEXPERIMENTALTylko liczniki.
timetable gettimetable.readReadTakNieBrakSTABLE_BETAStan menedżera rozkładu jazdy.
timetable tracks listtimetable.tracks.listReadTakNieBrakSTABLE_BETACzęść możliwości timetable.read; dowody z odczytu partiami 2026-09-20.
timetable trips listtimetable.trips.listReadTakNieBrakSTABLE_BETAJak wyżej.
timetable lines listtimetable.lines.listReadTakNieBrakSTABLE_BETAJak wyżej.
timetable tours listtimetable.tours.listReadTakNieBrakSTABLE_BETAJak wyżej.
timetable profiles listtimetable.profiles.listReadTakNieBrakSTABLE_BETAJak wyżej.
timetable bus-stops listtimetable.bus-stops.listReadTakNieBrakSTABLE_BETAJak wyżej.
timetable station-links listtimetable.station-links.listReadTakNieBrakSTABLE_BETAJak wyżej.
timetable logs listtimetable.logs.readReadTakNieBrakSTABLE_BETAJak wyżej.
drivers listdrivers.readReadTakNieBrakEXPERIMENTALRekordy kierowców.
tickets gettickets.readReadTakNieBrakEXPERIMENTALRekordy pakietów biletów.
hof getvehicle.hofs.readReadTakNieBrakSTABLE_BETAWymaga --handle=.
constants listvehicle.constants.listReadTakNieBrakSTABLE_BETAWymaga --handle=.
constants getvehicle.constant.getReadTakNieBrakSTABLE_BETAWymaga --handle=, --name=.
curves listvehicle.curves.listReadTakNieBrakSTABLE_BETAWymaga --handle=.
curves evaluatevehicle.curve.evaluateReadTakNieBrakSTABLE_BETAWymaga --handle=, --name=, --x=.
scripts variable listvehicle.variables.listReadTakNieBrakEXPERIMENTALWymaga --handle=.
scripts variable getvehicle.variable.getReadTakNieBrakEXPERIMENTALWymaga --handle=, --name=.
scripts variable setvehicle.variable.setWriteTakTak (zmienna skryptu)Brak, nie jest cofaneEXPERIMENTALWymaga --handle=, --name=, --value= (liczba skończona).
scripts string listvehicle.string-variables.listReadTakNieBrakEXPERIMENTALWymaga --handle=.
scripts string getvehicle.string-variable.getReadTakNieBrakEXPERIMENTALWymaga --handle=, --name=.

Operacje bez ścieżki polecenia#

Te publiczne identyfikatory operacji (PublicCapabilityRegistry.PublicRuntimeOperationIds) nie mają hierarchicznej ścieżki polecenia i są wywoływane przez /runtime:<operation> wraz z --key=value lub /runtime-arg:key=value: timetable.rv-files.list, timetable.track-entries.list, timetable.tour-entries.list, d3d.status, d3d.texture.create (wymagane width, height, format; opcjonalnie levels), d3d.texture.describe (handle; opcjonalnie level), d3d.texture.update (wymagane handle, width, height, pixels_base64; opcjonalnie level, x, y), d3d.texture.release (handle). Operacje D3D są EXPERIMENTAL; cykl życia tekstur i unieważnianie przy resecie urządzenia są zweryfikowane w runtime (domknięcie runtime H02, D01; patrz możliwości). timetable.track-entries.list i timetable.tour-entries.list są listami ograniczonymi: wynik, który nie mieści się w slocie runtime, jest skracany (truncated=true). internal.road-vehicles.make-basic jest INTERNAL i jest odrzucana z kodem OL_E_RUNTIME_OPERATION_UNKNOWN zarówno przez CLI, jak i przez API.

Flagi#

Każda flaga z CliInput.KnownFlags. „Faza” to etap uruchamiania (kształtuje LaunchSpec/plan nowej sesji), runtime (działa na uruchomionej sesji) lub sterowanie (zmienia zachowanie samego CLI). Flagi parsowane wyłącznie dla zgodności (CliInput.AcceptedNoEffectFlags) są oznaczone w swoim wierszu.

Sterowanie i wyjście#

FlagaSkładnia i wartościDomyślnieFazaStabilnośćZachowanie
/?/?wył.sterowanieSTABLE_BETAWypisuje tekst pomocy, kod wyjścia 0.
/help/helpwył.sterowanieSTABLE_BETATo samo co /?. (Samo słowo help zwraca natomiast katalog strukturalny.)
/version/versionwył.sterowanieSTABLE_BETAKoperta version, kod wyjścia 0. Obsługiwana przed każdym innym poleceniem z wyjątkiem /silent.
/json/json lub --jsonwył.sterowanieSTABLE_BETAEmituje koperty JSON; wymusza też wyjście na konsolę nawet pod OmsiLaunchW.exe.
/quiet/quietwył.sterowanieACCEPTED_FOR_COMPATIBILITY / CURRENTLY_NO_EFFECTUstawia CliInput.Quiet; nic tego nie odczytuje.
/silent/silent (również --silent)wył.sterowanieEXPERIMENTALDeleguje cały wiersz poleceń do OmsiLaunchW.exe, zwraca 0, gdy tylko proces hosta się uruchomi. Wynik sesji jest raportowany przez OmsiLaunchW.exe (okna komunikatu, ikona w obszarze powiadomień), .omsilaunch\diagnostics oraz punkt końcowy lokalnego sterowania. Delegowanie i okna dialogowe błędów są zweryfikowane w runtime (domknięcie runtime T04); patrz OmsiLaunchW.exe.
/serve/servewył.sterowanieACCEPTED_FOR_COMPATIBILITY / CURRENTLY_NO_EFFECTUstawia CliInput.Serve; nic tego nie odczytuje. Punkt końcowy sterowania jest zawsze uruchamiany przez właściciela.
/verbose/verbosewył.etap uruchamianiaPARTIALDiagnosticsSpec.Verbose. Wartości są przenoszone w specyfikacji; ich efekt ogranicza się do śladu hosta w .omsilaunch\diagnostics.
/log/logwł. (DiagnosticsSpec.Log domyślnie ma wartość true)etap uruchamianiaPARTIALDiagnosticsSpec.Log. W praktyce zawsze włączone.
/logall/logallwył.etap uruchamianiaPARTIALUstawia jednocześnie Verbose, ProcessTrace, PluginTrace i NativeTrace.
/omsi-logall/omsi-logallwył.etap uruchamianiaPARTIALDiagnosticsSpec.OmsiLogAll.
/trace/tracewył.etap uruchamianiaPARTIALAlias /trace-process.
/trace-process/trace-processwył.etap uruchamianiaPARTIALDiagnosticsSpec.ProcessTrace.
/trace-plugin/trace-pluginwył.etap uruchamianiaPARTIALDiagnosticsSpec.PluginTrace.
/trace-native/trace-nativewył.etap uruchamianiaPARTIALDiagnosticsSpec.NativeTrace.

Planowanie, walidacja i narzędzia testowe#

FlagaSkładnia i wartościDomyślnieFazaStabilnośćZachowanie
/plan/planwył.etap uruchamianiaSTABLE_BETABuduje i wypisuje SessionPlan, nie uruchamia OMSI. Kod wyjścia 0, gdy IsRunnable, w przeciwnym razie 1. Wymaga wyboru uruchomienia (/new, /saved, /spec lub argumentu instalacji); samo /plan bez niczego więcej wykonuje detect.
/validate/validatewył.etap uruchamianiaSTABLE_BETAW tym buildzie identyczne z /plan.
/runtime-batch/runtime-batchwył.runtime (właściciel)INTERNALNarzędzie walidacyjne: po osiągnięciu Running wykonuje zestaw operacji odczytu i zapisuje <sessionId>-runtime-read-batch.json.
/runtime-write-batch/runtime-write-batchwył.runtime (właściciel)INTERNALNarzędzie walidacyjne: odczyty oraz time.set, camera.set i vehicle.variable.set z przywróceniem; zapisuje <sessionId>-runtime-write-batch.json.
/d3d-batch/d3d-batchwył.runtime (właściciel)INTERNALNarzędzie walidacyjne dla cyklu życia tekstur D3D; zapisuje <sessionId>-d3d-wave-d-batch.json.
/runtime/runtime:<operation>brakruntimeSTABLE_BETA (obsługa)Wybiera publiczną operację runtime według identyfikatora. Tryb klienta (bez argumentu instalacji): przekazywana do właściciela. Tryb właściciela: wykonywana jednokrotnie po osiągnięciu Running. Nieznane identyfikatory: OL_E_RUNTIME_OPERATION_UNKNOWN, kod wyjścia 2.
/runtime-arg/runtime-arg:<key>=<value> (można powtarzać)brakruntimeSTABLE_BETA (obsługa)Argument runtime; odpowiednik --key=value. Brak =: /runtime-arg requires key=value, kod wyjścia 2.

Wybór świata#

FlagaSkładnia i wartościDomyślnieFazaStabilnośćZachowanie
/new/newWorldMode.NewMap jest trybem domyślnym, ale uruchomienie jest żądane tylko wtedy, gdy obecna jest jedna z flag /new, /saved, /last, /specetap uruchamianiaSTABLE_BETANEW_MAP. Wymaga /map i /entrypoint-index (plan bez podanego indeksu punktu wejścia zgłasza OL_E_ENTRYPOINT_REQUIRED; bez /map żadna mapa nie zostaje rozwiązana). /new nigdy nie wybiera mapy po cichu.
/saved/saved:<file.osn>braketap uruchamianiaSTABLE_BETASAVED_SITUATION. Mapa i pozycja pochodzą z pliku .osn; /map, /entrypoint, /entrypoint-index są odrzucane w połączeniu z /saved (kod wyjścia 2). Brak sytuacji: OL_E_SITUATION_NOT_FOUND; brak jej mapy: OL_E_SITUATION_MAP_NOT_FOUND.
/last/lastbraketap uruchamianiaUNAVAILABLELAST_MAP_STATE. W tym profilu zawsze daje OL_E_CAPABILITY_UNAVAILABLE (niemożliwy do uruchomienia, kod wyjścia 1); nie jest wykonywany żaden zastępczy wybór .osn na podstawie znaczników czasu.
/map/map:<identity> (na przykład maps\Grundorf\global.cfg)braketap uruchamianiaSTABLE_BETATożsamość mapy dla /new lub zakres dla /list:Entrypoints. Nieznana: OL_E_MAP_NOT_FOUND.
/entrypoint/entrypoint:<identity>braketap uruchamianiaUNAVAILABLEPunkt wejścia według etykiety. Zablokowane bramką: plan rejestruje world.entrypoint-identity jako RUNTIME_PARTIAL i staje się niemożliwy do uruchomienia (OL_E_CAPABILITY_UNAVAILABLE). Wzajemnie wykluczające się z /entrypoint-index (tożsamość wygrywa i czyści indeks).
/entrypoint-index/entrypoint-index:<n>, 0..2147483647braketap uruchamianiaSTABLE_BETAIndeks punktu wejścia na prezentowanej liście (liczony od 1, tak jak prezentuje go OMSI). Wymagany dla możliwego do uruchomienia planu NEW_MAP.

Data, czas i pogoda#

Wszystkie cztery są akceptowane i przenoszone do LaunchSpec, ale natywna ścieżka uruchamiania ich nie stosuje: planista rejestruje je jako STATICALLY_PARTIAL i dodaje OL_E_CAPABILITY_UNAVAILABLE, więc plan jest NIEMOŻLIWY DO URUCHOMIENIA (kod wyjścia 1). Plik /spec lub profil sesji, który je ustawia, ma ten sam skutek.

FlagaSkładnia i wartościDomyślnieFazaStabilnośćZachowanie
/date/date:<yyyy-mm-dd> lub /date:systemnieustawioneetap uruchamianiaUNAVAILABLEDateSpec jawne/systemowe. Wartość, której nie można sparsować: OL_E_INVALID_ARGUMENT, kod wyjścia 2.
/time/time:<hh:mm[:ss]> lub /time:systemnieustawioneetap uruchamianiaUNAVAILABLETimeSpec jawne/systemowe.
/year/year:<n> lub /year:systemnieustawioneetap uruchamianiaUNAVAILABLEYearSpec.
/weather/weather:<preset>nieustawioneetap uruchamianiaUNAVAILABLEWeatherMode.Preset.
/weather-icao/weather-icao:<code>nieustawioneetap uruchamianiaUNAVAILABLEWeatherMode.Icao.
/weather-real/weather-realnieustawioneetap uruchamianiaUNAVAILABLEWeatherMode.RealCurrent. Wygrywa ostatnia z flag /weather, /weather-icao, /weather-real.

Pojazd gracza#

Akceptowane i rozwiązywane względem instalacji, ale niestosowane przez runtime: każde ustawione pole jest STATICALLY_PARTIAL i dodaje OL_E_CAPABILITY_UNAVAILABLE (plan NIEMOŻLIWY DO URUCHOMIENIA, kod wyjścia 1).

FlagaSkładnia i wartościDomyślnieFazaStabilnośćZachowanie
/vehicle/vehicle:<identity> (Vehicles\...\*.bus)nieustawioneetap uruchamianiaUNAVAILABLERozwiązywane jako pierwsze (OL_E_VEHICLE_NOT_FOUND, jeśli nieznane).
/repaint/repaint:<id>nieustawioneetap uruchamianiaUNAVAILABLERozwiązywane tylko razem z /vehicle (OL_E_REPAINT_NOT_FOUND).
/hof/hof:<id>nieustawioneetap uruchamianiaUNAVAILABLEOL_E_HOF_NOT_FOUND, jeśli nieznane.
/fleet/fleet:<n>nieustawioneetap uruchamianiaUNAVAILABLENumer taborowy.
/registration/registration:<text>nieustawioneetap uruchamianiaUNAVAILABLENumer rejestracyjny.
/no-vehicle/no-vehiclewył.etap uruchamianiaSTABLE_BETAUsuwa pojazd gracza ze specyfikacji bazowej (/spec lub profilu). Nieszkodliwe.

Nakładki konfiguracji#

FlagaSkładnia i wartościDomyślnieFazaStabilnośćZachowanie
/set/set:<key>=<value> (można powtarzać; wielkość liter w kluczach nie ma znaczenia)braketap uruchamianiaSTABLE_BETASemantyczna nakładka (overlay) na options.cfg z ConfigurationCatalog (na przykład graphics.maxFPS=60, traffic.randomVehicles=150). Nieznany klucz: OL_E_UNKNOWN_SETTING (kod wyjścia 2); klucz tylko do odczytu (advanced.multithreadingCalculate, advanced.multithreadingTextureLoad, graphics.texture, graphics.textureFilter): OL_E_SETTING_NOT_WRITABLE (kod wyjścia 2); wartość spoza zakresu lub niepoprawna: OL_E_INVALID_SETTING_VALUE podczas budowania nakładki. Nakładka jest mutacją sesji: jest zapisywana w migawce, stosowana przed uruchomieniem OMSI i przywracana bajt po bajcie przy zatrzymaniu (RV-005 RUNTIME_PASS). Konflikt z kluczem należącym do ustawienia wstępnego wybranego profilu: OL_E_SESSION_PROFILE_OVERRIDE_CONFLICT.

Prezentacja ekranu startowego#

FlagaSkładnia i wartościDomyślnieFazaStabilnośćZachowanie
/splash/splash:Managed, /splash:Native, /splash:Unset (wielkość liter bez znaczenia)Managedetap uruchamianiaSTABLE_BETAManaged: dołączone do pakietu 24-bitowe pliki BMP 640x480 są jednorazowo kopiowane do <root>\.omsilaunch\assets\splash, a GUI\NewSplashscreen_ENG.bmp oraz GUI\NewSplashscreen_<lang>.bmp są nakładane transakcyjnie i dokładnie przywracane (RV-006 RUNTIME_PASS). Native/Unset (aliasy): pliki OMSI pozostają nietknięte. Brak wartości: /splash requires Unset, Native, or Managed, kod wyjścia 2.
/splash-language/splash-language:PTB|ENG|DEU|FRA (również pt-BR, de, fr, en; każda inna wartość powoduje powrót do ENG)[language] z options.cfg, w przeciwnym razie ENGetap uruchamianiaSTABLE_BETAWybiera zlokalizowany plik docelowy.
/splash-assets/splash-assets:<directory> (ścieżki względne są rozwiązywane względem katalogu głównego instalacji)<root>\.omsilaunch\assets\splash, w przeciwnym razie zestaw z pakietuetap uruchamianiaSTABLE_BETAWłasny katalog zasobów; musi zawierać ENG.bmp oraz, dla języka innego niż angielski, <lang>.bmp. Błędy: OL_E_SPLASH_ASSET_DIRECTORY_MISSING, OL_E_SPLASH_ASSET_MISSING, OL_E_SPLASH_FORMAT_UNSUPPORTED (zgłaszane w planie jako OL_E_SESSION_PRESENTATION_INVALID; niemożliwy do uruchomienia).

Tekstury internetowe#

FlagaSkładnia i wartościDomyślnieFazaStabilnośćZachowanie
/internet-textures/internet-textures:Native|Disabled|OverrideNativeetap uruchamianiaEXPERIMENTALNative: bez zmian. Disabled: profilowany mechanizm pobierania działający w procesie jest wyłączany. Override: podany profil .itx jest nakładany jako Texture\standard.itx; każdy wymieniony w nim cel HTTP(S) oraz Texture\standard.ipr stają się usunięciami sesji (usuwane na czas sesji, przywracane przy zatrzymaniu). Brak wartości: kod wyjścia 2.
/internet-textures-profile/internet-textures-profile:<file.itx>braketap uruchamianiaEXPERIMENTALWymagane z Override (OL_E_ITX_PROFILE_REQUIRED, kod wyjścia 2). OL_E_ITX_PROFILE_MISSING, OL_E_ITX_PROFILE_INVALID (muszą to być pary wierszy URL/cel z adresami URL http/https), OL_E_ITX_TARGET_OUTSIDE_TEXTURE_PATH (cele muszą się rozwiązywać wewnątrz Texture\, bez ścieżek bezwzględnych, .. ani punktów ponownej analizy).

Profile sesji#

FlagaSkładnia i wartościDomyślnieFazaStabilnośćZachowanie
/predefined-profile/predefined-profile:<id>braketap uruchamianiaSTABLE_BETA (kompilacja; offline OmsiLaunch.ProfileTests)Wczytuje <root>\.omsilaunch\session-profiles\<id>\profile.yaml (patrz profile sesji). Wymaga /predefined-profile-index (OL_E_SESSION_PROFILE_PRESET_NOT_FOUND, kod wyjścia 2). Blok new: jest stosowany tylko z /new; compatibility.maps jest egzekwowane dla /new i /saved (OL_E_SESSION_PROFILE_MAP_MISMATCH). Jawne flagi kolidujące z polem należącym do profilu są odrzucane z kodem OL_E_SESSION_PROFILE_OVERRIDE_CONFLICT (CliInput.RejectProfileConflicts): mapa/punkt wejścia/data/czas/rok/pogoda, gdy należą do bloku new:, klucze /set należące do ustawienia wstępnego, flagi ekranu startowego, gdy ustawienie wstępne ma presentation, flagi tekstur internetowych, gdy ma internet-textures, limity czasu, gdy ma behavior.
/predefined-profile-index/predefined-profile-index:<1..5>braketap uruchamianiaSTABLE_BETAWybiera ustawienie wstępne według index. Poza zakresem: kod wyjścia 2.

Plik LaunchSpec#

FlagaSkładnia i wartościDomyślnieFazaStabilnośćZachowanie
/spec/spec:<path.json>braketap uruchamianiaSTABLE_BETA (loader przetestowany offline; semantyka sesji identyczna jak dla flag)Wczytuje plik JSON LaunchSpec jako specyfikację bazową (patrz LaunchSpec) i oznacza, że zażądano uruchomienia. Reguły (LaunchSpecJson): plik musi istnieć (OL_E_SPEC_NOT_FOUND, kod wyjścia 6); najwyżej 1 MiB (OL_E_SPEC_TOO_LARGE, kod wyjścia 2); element główny musi być obiektem (OL_E_SPEC_INVALID); wielkość liter w nazwach właściwości nie ma znaczenia; dozwolone są komentarze // i końcowe przecinki; głębokość najwyżej 32; każda nieznana właściwość jest odrzucana wraz ze swoją ścieżką JSON (OL_E_SPEC_UNKNOWN_PROPERTY: $.Presentation.Foo, kod wyjścia 2).

Pierwszeństwo (CliInput.BuildSpecAsync): wartości domyślne → plik /spec → /predefined-profile (zastępuje Installation i World, a następnie stosuje profil) → jawne flagi. Jawny argument instalacji ma pierwszeństwo przed RootPath w specyfikacji. /no-vehicle usuwa pojazd gracza ze specyfikacji; /vehicle i pokrewne flagi są scalane z nim pole po polu. Klucze /set są scalane z Environment.General. /splash, /splash-language, /splash-assets, /internet-textures, /internet-textures-profile nadpisują wartości tylko wtedy, gdy zostały podane. /startup-timeout i /shutdown-timeout nadpisują wartości tylko wtedy, gdy zostały podane; Presentation.SuppressTrayIcon pochodzi wyłącznie ze specyfikacji (brak flagi). Flagi diagnostyczne są łączone operacją OR z Diagnostics ze specyfikacji.

Wykrywanie zawartości#

FlagaSkładnia i wartościDomyślnieFazaStabilnośćZachowanie
/list/list:<category>; kategoriami są wartości ContentQueryKind: Maps, Situations, Vehicles, Repaints, Hofs, FleetNumbers, Registrations, Addons, Entrypoints (wielkość liter bez znaczenia)braklokalnie, bez sesjiSTABLE_BETADiscoverAsync na instalacji; koperta content.list z wpisami Identity, Kind, DisplayName; kod wyjścia 0. Nieznana kategoria: Unknown discovery category, kod wyjścia 2. Punkty ponownej analizy (junction/dowiązania symboliczne) są pomijane, pliki OMSI są odczytywane w kodowaniu Windows-1252.
/vehicle-scope/vehicle-scope:<vehicle identity>braklokalnieSTABLE_BETAZakres przekazywany dla każdej kategorii z wyjątkiem Entrypoints, która jako zakresu używa /map.

Limity czasu i obserwacja#

FlagaSkładnia i wartościDomyślnieFazaStabilnośćZachowanie
/startup-timeout/startup-timeout:<1..600> sekundwartość ze specyfikacji/profilu, w przeciwnym razie 180etap uruchamianiaSTABLE_BETABehavior.StartupTimeoutSeconds. Właściciel czeka na Running przez tę wartość plus 5 s; OL_E_STARTUP_TIMEOUT kończy sesję z kodem wyjścia 1.
/shutdown-timeout/shutdown-timeout:<1..600> sekundwartość ze specyfikacji/profilu, w przeciwnym razie 30etap uruchamianiaACCEPTED_FOR_COMPATIBILITY / CURRENTLY_NO_EFFECTPrzenoszone do Behavior.ShutdownTimeoutSeconds; w tym buildzie nadzorca z tego nie korzysta (OMSI jest kończony, a nie proszony o zamknięcie).
/observe-seconds/observe-seconds:<0..2147483647>brak (działanie do zakończenia OMSI lub zażądania zatrzymania)runtime (właściciel)STABLE_BETAGórny limit fazy działania: po n sekundach w stanie Running żądane jest kanoniczne zatrzymanie. Zatrzymanie z obszaru powiadomień lub przez potok albo zakończenie OMSI kończy ją wcześniej. 0 zatrzymuje natychmiast po osiągnięciu Running.

Odzyskiwanie#

FlagaSkładnia i wartościDomyślnieFazaStabilnośćZachowanie
/recovery-status/recovery-statuswył.lokalnieSTABLE_BETARaportuje, czy <root>\.omsilaunch\journal.json oczekuje (pending), nigdy nie przywraca; kod wyjścia 0. Przejmuje dzierżawę instalacji: OL_E_INSTALLATION_BUSY (kod wyjścia 7), dopóki utrzymuje ją właściciel.
/recover/recoverwył.lokalnieSTABLE_BETAPrzywraca oczekujący dziennik (kopie zapasowe są najpierw weryfikowane względem SHA-256 z migawki; OL_E_RECOVERY_BACKUP_CORRUPT, OL_E_RECOVERY_ABSENT_OWNERSHIP_MISMATCH, OL_W_RESTORE_FOREIGN_FILE_RETAINED są raportowane w diagnostics). Kod wyjścia 0, gdy nic nie oczekiwało lub przywrócenie zostało ukończone; 8, gdy dziennik oczekiwał i nadal pozostaje. Odmowa z kodem OL_E_INSTALLATION_BUSY, dopóki działa zapisany w dzienniku proces OMSI (PID, czas utworzenia, ścieżka exe) lub – w przypadku dziennika po etapie HandoffCreated bez PID – dowolny Omsi.exe z tego katalogu głównego. Każde uruchomienie sesji automatycznie wykonuje to samo odzyskiwanie przed odczytaniem instalacji.

Formaty wyjścia#

  • Koperta sukcesu (CliInput.WriteEnvelope, z --json): {"ok": true, "command": "<name>", "protocol_version": "0.1", "result": <object>}, z wcięciami. Przekazywane odpowiedzi session status i events read dodają element metadata, gdy starsze zdarzenia pominięto, aby zmieścić się w ramce sterowania (events_dropped_count, patrz lokalne sterowanie). Bez --json wypisywany jest tylko <object> jako JSON z wcięciami, a po nim Note: <n> older events were omitted to fit the control frame., gdy zdarzenia zostały pominięte.
  • Koperta błędu (CliInput.WriteError, z --json): {"ok": false, "command": "<name>", "protocol_version": "0.1", "error": {"code": "OL_E_...", "category": "<category>", "message": "..."}}. Bez --json: OL_E_<CODE>: message w jednym wierszu. Kategorie: invalid_argument, unsupported_profile, session, runtime, not_found, transaction, internal. Pod OmsiLaunchW.exe ten sam kod i komunikat są wyświetlane w oknie komunikatu.
  • Plan i stan (CliInput.Write): rekordy SessionPlan, SessionStatus i RuntimeCommandResult są wypisywane jako JSON z wcięciami bez koperty. Bez --json plan jest streszczany jako Plan: READY profile=Omsi23004_692EBFBF lub Plan: NOT RUNNABLE profile=...; pozostałe rekordy nadal są wypisywane jako JSON. Wartości wyliczeń są serializowane jako liczby całkowite (SessionState.Running to 14, Completed to 18, Failed to 19).
  • Nazwy poleceń używane w kopertach: silent, version, capabilities, help, profiles, detect, recover, content.list, session, session.status, session.stop, events.read, events.watch, events watch, installation, cli, session profile oraz identyfikator operacji runtime w przypadku przekazywanych poleceń runtime.
  • Pod OmsiLaunchW.exe (OMSILAUNCH_WINDOWS_HOST=1) nic nie jest zapisywane na konsolę, chyba że podano --json.

Błędy według poleceń#

PolecenieTypowe kody błędówKod wyjścia
Dowolny błąd parsowaniaOL_E_INVALID_ARGUMENT, kody profilu sesji (OL_E_SESSION_PROFILE_*)2
/silentOL_E_WINDOWS_HOST_MISSING, OL_E_WINDOWS_HOST_START_FAILED7
Ścieżka klienta, /runtime (klient)OL_E_RUNTIME_OPERATION_UNKNOWN, OL_E_RUNTIME_ARGUMENT_REQUIRED (2); OL_E_NO_ACTIVE_SESSION (4); OL_E_CONTROL_*, OL_E_RUNTIME_* zwracane przez właściciela, np. OL_E_RUNTIME_REQUEST_TIMEOUT, OL_E_RUNTIME_OBJECT_HANDLE_STALE, OL_E_RUNTIME_SETTING_NOT_PERSISTENT, OL_E_RUNTIME_RESPONSE_TOO_LARGE, OL_E_SESSION_NOT_RUNNING (7)2, 4, 7
session status, session stop, events read, events watchOL_E_NO_ACTIVE_SESSION (4); OL_E_CONTROL_SESSION_MISMATCH, OL_E_CONTROL_PROTOCOL, OL_E_CONTROL_FAILED (7)4, 7
Kontrola wstępna właścicielaOL_E_RUNTIME_INSTALLATION_INCOMPLETE, OL_E_SESSION_ALREADY_ACTIVE7
/recovery-status, /recoverOL_E_INSTALLATION_BUSY (7); OL_E_RECOVERY_*, OL_E_RESTORE_FAILED (8); oczekujący, ale nieodzyskany (8)7, 8
/listnieznana kategoria (2); OL_E_INSTALLATION_NOT_FOUND/brakujące katalogi (6)2, 6
/specOL_E_SPEC_NOT_FOUND (6); OL_E_SPEC_TOO_LARGE, OL_E_SPEC_INVALID, OL_E_SPEC_UNKNOWN_PROPERTY (2)2, 6
/setOL_E_UNKNOWN_SETTING, OL_E_SETTING_NOT_WRITABLE, OL_E_INVALID_SETTING_VALUE2
/plan, /validate, uruchomieniekomunikaty diagnostyczne planu: OL_E_PERMANENT_PLUGIN_MISSING, OL_E_PERMANENT_PLUGIN_HASH_MISMATCH, OL_E_PERMANENT_PLUGIN_MANIFEST_INCOMPLETE (zainstalowany zestaw plików wtyczki), OL_E_UNSUPPORTED_BUILD, OL_E_UNSUPPORTED_OPERATING_SYSTEM, OL_E_INSTALLATION_NOT_WRITABLE, OL_E_MAP_NOT_FOUND, OL_E_ENTRYPOINT_REQUIRED, OL_E_SITUATION_NOT_FOUND, OL_E_SITUATION_MAP_NOT_FOUND, OL_E_VEHICLE_NOT_FOUND, OL_E_REPAINT_NOT_FOUND, OL_E_HOF_NOT_FOUND, OL_E_CAPABILITY_UNAVAILABLE, OL_E_SESSION_PRESENTATION_INVALID, OL_E_RUNTIME_ARTIFACT_MISSING, plugin.integrity.reference (informacyjny)1
Uruchomienie sesjiOL_E_PLAN_NOT_RUNNABLE (ponowne planowanie przy uruchomieniu, 1); OL_E_PERMANENT_PLUGIN_MISSING, OL_E_PERMANENT_PLUGIN_HASH_MISMATCH, OL_E_PERMANENT_PLUGIN_MANIFEST_INCOMPLETE, OL_E_RELEASE_MANIFEST_INVALID (zwykle zgłaszane przez planowanie jako komunikat diagnostyczny planu, kod wyjścia 1; 7 tylko wtedy, gdy pliki wtyczki zmienią się między planowaniem a uruchomieniem), OL_E_INSTALLATION_BUSY (7); OL_E_PROCESS_START_FAILED, OL_E_PROCESS_EXITED_EARLY, OL_E_STARTUP_TIMEOUT, OL_E_WORLD_START_FAILED, OL_E_SITUATION_LOAD_FAILED, OL_E_PLUGIN_NOT_LOADED (sesja Failed, 1)1, 7
Nieobsłużony wyjątek w dowolnym miejscuklasyfikowany przez CliProgram.Classify (patrz kody wyjścia)2..10

Środowisko#

ZmiennaUstawiana przezEfekt
OMSILAUNCH_WINDOWS_HOST=1OmsiLaunchW.exeWindowsHost.IsActive: wyjście konsoli wyciszone, błędy w oknach komunikatu, /silent nie jest ponownie delegowane.

Zobacz też#

Przykłady CLI · OmsiLaunchW.exe · kody wyjścia · błędy · lokalne sterowanie · obszar powiadomień Windows · sterowanie runtime · możliwości · LaunchSpec · profile sesji · pakowanie · zgodność · znane ograniczenia · publiczne API