2012-12-09 6 views
0

문제는 위의 코드에서와 같이 nc 구문을 사용하여 CMD에서 nc.exe를 열면 작동하고 내 서버에 연결하는 것입니다. 그러나 위의 코드를 사용하여 프로그램을 통해 그렇게 할 때 nc.exe 창을 열어도 명령을 실행하지 못하게되어 프롬프트가없는 빈 CMD 창이 나타납니다.CreateProcess가 필요한대로 응용 프로그램 (nc.exe)을 실행하지 않습니까?

PROCESS_INFORMATION pi; 
    STARTUPINFO si; 
    memset(&si, 0, sizeof(STARTUPINFO)); 
    si.cb = sizeof(STARTUPINFO); 

    TCHAR nc[] = TEXT("nc.exe localhost 4444");  

    CreateProcess(NULL, nc, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi); 

나는 (내가 수동으로 실행하고 할 때 또는 작동으로) 그것을 정상적으로 작동하도록하기 위해 CreateProcess에 다른 인수를 사용해야합니까? 아마 문제가 어떻게 든 StdInput StdOutput 일과 관련이 있다고 생각하지만 거기서부터 어디로 가야할지 잘 모르겠습니다.

감사합니다.

답변

1

당신은 열린 상태로 유지하기 위해 DOS 창을 강제로 /K 인수, 예컨대 :

cmd.exe /K nc.exe localhost 4444 
cmd.exe를 통해 실행할 수 있습니다