以程式方式啟動時如何取得 Steam 遊戲的標準輸出

以程式方式啟動時如何取得 Steam 遊戲的標準輸出

我已透過 Steam 在 Windows 上成功啟動異星工廠

steam -applaunch 427520

但不幸的是,我需要我正在處理的項目的標準輸出,並且該命令啟動的蒸汽進程退出,使我沒有標準輸出。我還直接啟動了異星工廠,但我在標準輸出上得到的只是:

0.000 Initializing Steam API.
0.000 Steam requires game restart, restarting...

然後什麼都沒有...

當我啟動非 Steam 版本時,我可以成功從標準輸出獲取各種輸出。 steam 是否劫持了標準輸出?

我所做的其他測試包括向異星工廠發送額外的參數

steam -applaunch 427520 --version

似乎可以工作,因為遊戲無法啟動,而且它不會像未知參數那樣返回錯誤,但我不知道輸出發送到哪裡。直接使用版本參數啟動遊戲返回:

Version: 1.1.59 (build 59719, win64, steam)
Binary version: 64
Map input version: 0.18.0-0
Map output version: 1.1.59-0 

appid 452280 的示範應該可以進行類似的測試

答案1

將 Steam 啟動器指向執行您的程式而不是遊戲。

為此,您可以編輯啟動參數,如下所示:

myLauncher %command%

其中 myLauncher 是您的啟動器的路徑。然後,當 Steam 啟動「遊戲」時,它實際上會執行您的啟動器,並且遊戲可執行檔案的路徑將作為第一個參數傳遞。

這允許您自己啟動遊戲,這樣您就可以捕獲標準輸出,並且至關重要的是,Steam 期望遊戲啟動,因此當遊戲通過 Steam 檢查時,它知道它已正確啟動。

如果您仍然希望用戶從您的應用程式啟動啟動,您可以將您的應用程式設定為告訴 steam 在沒有收到參數的情況下啟動遊戲,然後退出。然後 Steam 將重新啟動您的應用程序,第二個實例將按預期工作。

相關內容