음, 내 자신의 질문에 대한 답변을 찾은 것 같습니다. 그것은 진짜 "함께 kludged"솔루션이지만, 작동합니다 - 그리고 내가 만들고있는 응용 프로그램의 모든 의도와 목적에 상관 없습니다.
그럼, 내가 한 것은 첫 번째는 /보기를 각각 1과 0으로 nCmdShow을 변경하여 창을 숨기기 할 수 있습니다
static extern bool ShowWindow(IntPtr WindowHandle, int nCmdShow);
static extern bool SetForegroundWindow(IntPtr WindowHandle);
전화 사용이 개 WinAPI를 기능이었다. 다른 하나는 윈도우 (WindowHandle에 의해 결정됨)를 앞에 배치합니다. 이 둘을 결합하여 프로그래밍 방식으로 콘솔 창을 가져올 수 있었고 간단한 SendKeys.Send(); 작업을 한 다음 다시 숨 깁니다.
// Use a WIN API command to bring the command line to front
SetForegroundWindow(workerProcess.MainWindowHandle);
// Send a keystore to re-display the STATUS of the worker
SendKeys.Send("s");
// Hide the window again.
ShowWindow(workerProcess.MainWindowHandle, 0);
이제는 실제 kludge 작업이지만 작업이 완료됩니다. 한 가지 잠재적 인 함정은 사용자가 컴퓨터를 다른 용도로 사용하는 경우이며, 창이 'q'로 활성화되어있는 10000000 순간에 1을 못 박는다면 작업자 프로그램을 종료합니다. 그러나이 응용 프로그램은 모니터, 키보드 또는 마우스가 연결되어 있지 않아도 문제가되지 않는 전용 컴퓨터에 사용하기위한 것입니다.
답장을 보내 주신 모든 분들께 감사드립니다. 일방적으로 또는 다른 방법으로 나를 올바른 해결책으로 인도하십시오.
을 당신이 쓴 명령 줄 응용 프로그램 하나 (또는 적어도 소스 코드가)? 그렇다면 GUI와 명령 줄 도구 모두에서 사용하는 별도의 라이브러리로 다시 사용하려는 비트를 리팩토링합니다. –
Process'StandardInput을 사용할 때 스트림 플러시를 했습니까? – jclozano
@JonSkeet : Heh, 내가 호화 로움을 가졌다면 나는 질문을하지 않을 것이다 : P 나는 단지 애플리케이션이 더 잘 작동하도록 바꿀 뿐이다. 예, 플러시() 명령을 호출하여 스트림을 플러시했습니다. 도와주지 않았어. – Iv4n