제가 cUrl 이라는 것을 사용하기 위해서 찾았던 내용들을 여기에 써놓습니다.
1. 프로세스 생성
C#에서 프로세스 생성은 아래의 코드로 할 수 있습니다
아래의 코드는 cmd를 생성하고 도움말을 요청합니다.
필수 : using System.Diagnostics;
ProcessStartInfo CmdInfo = new ProcessStartInfo();
Process Cmd = new Process();
CmdInfo.FileName = @"Cmd"; // 상대경로 가능
CmdInfo.WindowStyle = ProcessWindowStyle.Hidden; // 창이 나타나지 않도록 함
CmdInfo.CreateNoWindow = true;
CmdInfo.UseShellExecute = false;
CmdInfo.RedirectStandardInput = true; // 표준입력을 사용하려면 true
CmdInfo.RedirectStandardOutput = true; // 표준출력을 사용하려면 true
CmdInfo.RedirectStandardError = true; // 표준에러를 사용하려면 true
// void Main(object[] Args) 에서 Args를 여기에서 넣을 수 있다.
// CmdInfo.Arguments = "help";
Cmd.EnableRaisingEvents = false;
Cmd.StartInfo = CurlInfo;
2. 다른 프로그램과 통신
Curl.Start(); // 프로세스 시작
Cmd.StandardInput.WriteLine("help"); // help 라고 cmd에 입력
Cmd.StandardInput.Close(); // 표준 입력을 닫음. 안닫으면 출력을 받을 수 없다.
// StackOverflow에 했던 질문 참조
string Result = Cmd.StandardOutput.ReadToEnd(); // 표준 출력으로 결과를 받음
3. 장점과 단점
장점 : 어떤 언어로 어떤 컴파일러로 프로그래밍한 실행파일이든 표준입출력만 지원하면
가져다쓸 수 있다.
단점 : 한 번만 통신할 수 있다는 한계가 아쉽다.