###前提・実現したいこと
現在、こちらのサイトを参考にしながら、C#で特定のexeのPIDを取得しようとしています。
###発生している問題・エラーメッセージ
下記のソースコードに記載しましたように、取得したPIDをlog.txtに出力しようとしておりますが、出力されたログファイルを見ると、%WL_PID%となっており、PIDの取得ができておりません。
試しに、同じコマンドをバッチファイルで実行すると、HPに記載されている通りに確かにPIDを取得することができるようです。
勿論バッチファイルで実行すればよいのですが、全てC#内で完結させたいと考えておりまして、以下のコードで問題箇所が分かりましたら、教えていただけると助かります。
宜しくお願いいたします。
###該当のソースコード
C#
1 System.Diagnostics.Process p = new System.Diagnostics.Process(); 2 p.StartInfo.UseShellExecute = false; 3 p.StartInfo.RedirectStandardInput = true; 4 p.StartInfo.RedirectStandardOutput = true; 5 p.OutputDataReceived += p_OutputDataReceived; 6 7 p.StartInfo.FileName = 8 System.Environment.GetEnvironmentVariable("ComSpec"); 9 p.StartInfo.CreateNoWindow = true; 10 p.Start(); 11 12 p.BeginOutputReadLine(); 13 14 System.IO.StreamWriter sw3 = p.StandardInput; 15 16 if (sw3.BaseStream.CanWrite) 17 { 18 sw3.WriteLine(@"echo PID checking>> log.txt"); 19 sw3.WriteLine(@"for /f ""usebackq tokens = 1, 2, 3 * "" %%a in (`tasklist`) do ( if ""winlogon.exe "" == "" %% a ""( set /a WL_PID=%%b))"); 20 sw3.WriteLine(@"echo %WL_PID%>> log.txt"); 21 sw3.WriteLine("exit"); 22 } 23 sw3.Close(); 24 25 p.WaitForExit(); 26 p.Close();
###補足情報(言語/FW/ツール等のバージョンなど)
Visual studio 2015で作成しております。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/28 02:16
2017/02/28 02:24