4

Web と Stackoverflow を検索しましたが、何も見つかりませんでした。この質問がすでに存在する場合は申し訳ありません。

たとえば、C# アプリケーションが cmd を介して呼び出された場合:

C:\System32\MyConsoleApplication -parmOne -paramTwo ...

cmd に書き込む方法はありますか (たとえば、進捗情報を提供するには?)

編集:コンソールアプリケーションを使用しているため、解決策Console.WriteLineはありません。アプリケーションに管理者権限が必要であり(マニフェストファイルを介して)、通常のユーザー権限で呼び出されたため、うまくいきませんでした。この場合、UAC は権限を要求し、アプリケーションで新しい Cmd を開きます。

4

2 に答える 2

3

これはすべて、exeタイプが何であるかによって異なります。これは、PE ヘッダー (「exe」シェル) のフラグです。

  • Windowsアプリとしてフラグが立てられている場合、コンソール/既存のコンソールへの出力は取得されません-開始方法に関係なく
  • コンソールアプリとしてフラグが立てられている場合コンソール/既存のコンソールへの出力を取得します-開始方法に関係なく

両方であることはできません。Windows exe のように正常に動作させたい場合は、Windows exe としてコンパイルする必要があります。つまり、いいえです。通常はコンソールに書き込みません。Windows exe からコンソールへのアクセスを取得しようとするのは難しく、OS への P/Invoke が必要になります。

コンソール exe としてフラグが付けられている場合Console.WriteLine、問題なく動作します。

于 2013-08-23T07:10:03.467 に答える