申し訳ありませんが、私はこのことについて少し勉強しました。さて、これはすべての罰金とダンディですが、
STARTUPINFO startInfo;
PROCESS_INFORMATION procInfo;
memset((void*) &startInfo, 0, sizeof (startInfo));
memset((void*) &procInfo, 0, sizeof (procInfo));
startInfo.cb = sizeof (startInfo);
startInfo.dwFlags = (STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW);
startInfo.wShowWindow = SW_HIDE; //No Console Window, Thanks.
startInfo.hStdInput = (HANDLE)inHandle;
startInfo.hStdOutput = (HANDLE)outHandle;
startInfo.hStdError = (HANDLE)errHandle;
char* pe = "cmd\0";
//This is the program to execute (eg: c:\\Windows\\System32\\cmd.exe)
CreateProcess(NULL,pe,NULL,NULL,TRUE,0,NULL,NULL,&startInfo,&procInfo);
return procInfo.hProcess;
:そしてここで何人かの人々が有用見つけることがいくつかの情報=]
コードは、標準入力/アウト/ ERRとしてパイプ/ファイルディスクリプタでプロセスを作成するのですここに私を本当に助けてくれたちょっとした情報があります。あなたのハンドル(in/out/err)にファイル記述子を使うことができるので、変更なしでストレートソケットを使うことができ、プロセスの入出力に直接アクセスできます。 cmdを呼び出して子プログラムのための
だから、隠されたコンソールを作成するための私の現在の方法は、局部的に2つのソケットを接続することで、その後、stdInputとしてソケットのいずれかを使用& & stdOutput & & STDERROR記述子。すばやく簡単です。
あなたが一緒にいくつかのソケットを接続する方法がわからない場合は、ただ単に私が必要な正確な情報についてですbeej's guide
ありがとうございました!私は前にパイプを見ましたが、まだ、私はそれらと何もしていません。これで十分です。ありがとうございました)! – ultifinitus