2013-03-17 3 views
2

나는 Windows cmd 프롬프트를 제어하는 ​​C 프로그램을 작성하려고합니다. 예를 들어 cmd 프롬프트를 열고 특정 디렉터리 (예 : C :/Program Files/...)로 이동 한 다음 해당 폴더에서 exe를 실행합니다.C를 사용하여 cmd를 프롬프트 제어

C 프로그래밍을 통해이 작업을 수행 할 수 있습니까? 그렇다면 어떻게? 지금까지는 cmd 프롬프트를 여는 시스템 ("cmd.exe") 만 알고 있습니다. 어떻게하면 cmd 프롬프트와 더 상호 작용할 수 있습니까?

감사합니다.

+0

아시다시피 이러한 작업을 수행하기 위해 명령 프롬프트를 프록시로 사용하지 않아도됩니다. Windows에는이를 수행 할 수있는 API가 있습니다. – StoryTeller

답변

1

이것은 휴대용이 아닙니다. system 전화는 종종 싫은 말이지 만, 질문에 대답하기 위해, system 함수는 여러분이 사용하고자하는 명령으로 작동합니다. 예를 들어

:

system("notepad.exe my_file.txt"); 
system("del my_file.txt"); 
system("pause"); 

이, 메모장에서 my_file.txt라는 파일을 열어 삭제하고 프로그램을 일시 중지됩니다.

다시 말하지만, 이식성이 없습니다. Windows 운영 체제에만 해당됩니다. 사실, 모든 Windows 릴리스에서 작동한다고 보장 할 수 있다고 생각지 않습니다.

0

"CreateProcess"를 통해 cmd를 시작하고 창 메시지 ("SendMessage")를 통해 키 입력을 보낼 수 있습니다.

나는 당신이 어떻게 일을하고 싶은지 다시 생각해야한다고 생각합니다. 명령 프롬프트는 Windows에서 일을하는 일종의 API 기반이 아닙니다. 그것은 자신의 프로그램을 작성하지 않고 일을하고 정보를 얻는 도구입니다. 자신의 프로그램을 wirte하면 WinAPI를 직접 사용해야합니다.

"winapi [원하는 것을 무엇이든]"을 시작할 수 있습니다. "winapi start executable"예제에서 "CreateProcess"및 "ShellExecute"와 같은 기능을 찾을 수 있습니다.

1

아마도 여기에는 오해가 있습니다 (그렇다면 사과합니다). 그러나 "cmd 프롬프트와 더 상호 작용하는"표준 방법은 명령 줄 명령과 표준 방법을 통해 "Windows를 제어하는 ​​프로그램을 작성하는 것입니다 cmd prompt "는 배치 파일을 통해 이루어집니다. 예를 들어 다음 배치 파일은 cmd 프롬프트를 엽니 다 (탐색기에서 두 번 클릭하여 실행될 때). 특정 디렉토리 (C :/Program Files /)로 이동하여 해당 폴더에서 exe를 실행합니다.

@echo off 
cd "C:/Program Files/" 
nameOfTheProgram.exe 
관련 문제