皆さん、こんにちは。お時間をいただきありがとうございます。
C である種の監視アプリケーションを開発していますが、現在のタスク リストを取得する必要がありました。だから私はタスクリストを使用していて、popen(); のおかげで出力を取得しています。
ptr = popen("tasklist /V", "r");
while(1)
{
if(fgets(temp, 255, ptr) == NULL) break;
fputs(temp, log);
}
問題は、ほんの一瞬 cmd.exe ウィンドウがポップアップすることです。これは、新しいウィンドウにフォーカスが切り替わり、アプリケーションがフルスクリーンではなくウィンドウ モードになるため、非常に厄介です。
そのため、「非表示」モード/ウィンドウでそのプロセスを開始するために popen の方法または Windows 自体の方法を調べるのに何日も費やしましたが、結果は得られませんでした。私がすでに試したことは次のとおりです。
cmd.exe /c tasklist /V
start /b cmd.exe /c tasklist /V
start /min /b cmd.exe /c tasklist /V
start /min cmd.exe /c tasklist /V
tasklist > somefile
私も最後のものを試したので、そのいくつかのファイルから出力を読み取りますが、ファイルが作成されてもデータが書き込まれないため、タスクリストは出力を標準出力に強制するようです。
あなたの答えを願って、とにかくありがとう。