Windowsプログラム(Wine)が実行されているLinuxプログラムの標準出力をキャプチャするようにします。

Windowsプログラム(Wine)が実行されているLinuxプログラムの標準出力をキャプチャするようにします。

Wineで実行されるWindowsプログラムがあります。このWindowsプログラムを使用すると、外部プログラムを実行するための「ツール」を設定できます。このツールは標準の出力/エラーをキャプチャしてWindowsプログラムインターフェイスに表示します。

私はそのようなツールとして基本的なLinuxプログラムを実行できるようにしたいです。 WindowsプログラムでLinuxプログラムを実行できますが、出力にアクセスできません。代わりに、Windowsプログラムを実行しているコンソールウィンドウにLinuxプログラムの出力が表示されます。

私の特定のプログラムはテキストエディタであるEditPad Proですが、可能であれば外部プログラムを実行しているすべてのWindowsプログラムで動作するソリューションが必要です。 (多くのテキストエディタには、編集中のソースコードをコンパイル/実行する機能と同じ機能があります。)

一例として、/usr/bin/python3 --versionテストのために外部ツールとして実行してみました。一般的なLinux端末を開き、実行します。 Myprogramで外部ツールとしてwine myprogram.exe設定します。/usr/bin/python3 --version(私もstart /unixbeforeを試してみましたが、それはうまくいきませんでした。)ツールを実行すると、と入力したLinux端末にPythonのバージョン情報が表示されますwine myprogram.exe。私のプログラムでPython出力を見ることはできません。しかし、私はその出力が、Myprogramを起動したLinux端末ではなく、それを実行している「Myprogram」に送信されることを望みます。

この目標をどのように達成できますか?

答え1

あなたが言ったことでは、MSプログラムが外部ツールのstdoutをキャプチャしているという証拠はありません。 stdoutがMSプログラムが実行されている端末に表示されている場合(「対照的に、Linuxの出力はプログラムがコンソールウィンドウの「Windowsプログラムを実行しました」に表示されます)、これは外部プログラムが呼び出し元からstdoutを継承していることを示します。

MSプログラムからデータを読み取る方法を見つける必要があります。どのオプションがあるかを確認してください。

  • 外部ツールの標準出力を読み取るオプションはありますか?
  • ファイルを読み込み、コマンドを一緒に文字列で囲む方法はありますか?

関連情報