2011-12-16 36 views
4

我有一些現有的代碼使用System.Diagnostics.Process.Start來啓動子進程。它還使用ProcessStartInfo.RedirectStandardOutput來捕獲該進程的輸出流。這很多工作正常。我也需要附加到job object。我也有這樣做的代碼,只要過程尚未附加到作業中,它就可以正常工作。打破從C開始的進程#

不幸的是,情況並非總是如此,所以我需要使用CREATE_BREAKAWAY_FROM_JOB標誌創建進程。這是我卡住的地方。

在我看來,還有着兩種可能的方式從這裏:

  1. 不知何故說服Process.Start通過一個額外的小旗子。
  2. 放棄Process類,回退到原始CreateProcess,並(以某種方式)重新輸出重定向。

我不太確定如何做這些,或者如果有一些中間地帶,也可能工作。有沒有其他人遇到過這種情況,並有一些想法/代碼?

+0

你如何將一個過程附加到工作中?是否有可能以類似的方式將工作從工作中分離出來? – 2011-12-16 07:36:43

回答

1

目前,我已經選擇了#2。我想我已經制定了如何進行輸出捕捉,儘管我還沒有對它進行廣泛的測試。但是,仍然對替代想法感興趣。