C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[54717] 성호님께 많은 도움 받네요 감사합니다 ^^
번외편 [wifemylove] 1443 읽음    2008-09-30 17:13
많이 배워갑니다. 도움 감사합니다
즐거운 하루 되세요~



장성호 님이 쓰신 글 :
: 팁게시판에 임프님께서 간단한 샘플 만들어 놓은것 있네요
: http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=173
:
: 그럼
:
: 번외편 님이 쓰신 글 :
: : 조금 이해하기 힘드네요.. ㅎㅎ
: :
: : 좀더 자세히 설명해주시면 안될까요?
: :
: : 제가 하려는건 route print 명령어를 입력해
: :
: : Default Gateway : 192.168.10.1 에서
: :
: : 192.168.10.1중 192.168을 다른것과 비교해서
: :
: : 동일하면 ok 틀리면 no를 보여주려고 합니다
: :
: : 도움 감사드립니다. 조금만 더 세부하게 적어주셨으면 합니다.. ^^;;
: :
: :
: : 장성호 님이 쓰신 글 :
: : : 간단히 설명하면
: : :
: : : CreateProcess로 cmd.exe를 실행해서 cmd 프로세서의 출력을 받아오면 됩니다.
: : :
: : : [ cmd.exe의 출력을 받아오려면 ]
: : :
: : : CreateProcess 함수를 보면 9번째에  STARTUPINFO 구조체 포인터를 넘겨줍니다.
: : : STARTUPINFO 구조체는 winbase.h 에 다음과 같이 선언되어 있습니다.
: : :
: : :
: : : BOOL WINAPI CreateProcessA(
: : :     IN LPCSTR lpApplicationName,
: : :     IN LPSTR lpCommandLine,
: : :     IN LPSECURITY_ATTRIBUTES lpProcessAttributes,
: : :     IN LPSECURITY_ATTRIBUTES lpThreadAttributes,
: : :     IN BOOL bInheritHandles,
: : :     IN DWORD dwCreationFlags,
: : :     IN LPVOID lpEnvironment,
: : :     IN LPCSTR lpCurrentDirectory,
: : :     IN LPSTARTUPINFOA lpStartupInfo,     // STARTINFO 구조체포인터를 넘긴다.
: : :     OUT LPPROCESS_INFORMATION lpProcessInformation
: : :     );
: : : 
: : : 
: : : typedef struct _STARTUPINFOA {
: : :     DWORD   cb;
: : :     LPSTR   lpReserved;
: : :     LPSTR   lpDesktop;
: : :     LPSTR   lpTitle;
: : :     DWORD   dwX;
: : :     DWORD   dwY;
: : :     DWORD   dwXSize;
: : :     DWORD   dwYSize;
: : :     DWORD   dwXCountChars;
: : :     DWORD   dwYCountChars;
: : :     DWORD   dwFillAttribute;
: : :     DWORD   dwFlags;
: : :     WORD    wShowWindow;
: : :     WORD    cbReserved2;
: : :     LPBYTE  lpReserved2;
: : :     HANDLE  hStdInput;                  // 표준 출력 핸들
: : :     HANDLE  hStdOutput;               //  표준 입력 핸들 
: : :     HANDLE  hStdError;                 //  표준 에러 핸들
: : : } STARTUPINFOA, *LPSTARTUPINFOA;
: : : 
: : : 

: : :
: : : STARTUPINFO 구조체의 맨 아랫쪽에 보면
: : : 다음 세가지가 있습니다.
: : :
: : :     HANDLE  hStdInput;                  // 표준 출력 핸들
: : :     HANDLE  hStdOutput;               //  표준 입력 핸들
: : :     HANDLE  hStdError;                 //  표준 에러 핸들
: : :
: : :
: : : 이 표준 입/출력 핸들에 적당한 핸들을 만들어서 설정해 넘겨주면 됩니다.
: : :
: : : [표준입/출력 핸들에는 어떤 걸 넘겨줘야 하는가?]
: : :
: : : 그것은 CreatePipe로 pipe를 만들어서 넘겨줘야 합니다.
: : :
: : :
: : : [cmd.exe의 출력을 읽고 쓰기]
: : : 읽기는 
: : :      STARTUPINFO 구조체의  hStdOutput 으로 넘겨준 핸들을 ReadFile로 읽으면 되고
: : :
: : : 쓰기는
: : :
: : :      STARTUPINFO 구조체의  hStdInput으로 넘겨준 핸들에 WriteFile하면 됩니다.
: : :     
: : :
: : : 이런 것을  redirect 라고 합니다.
: : :
: : : 키워드 redirect , CreatePipe , CreateProcess  로 아무데서나 검색해 보세요
: : :
: : : [참고]
: : : http://support.microsoft.com/kb/190351
: : :
: : :
: : :
: : : 그럼...
: : :
: : :
: : :
: : :
: : :
: : :
: : :
: : :
: : : 번외편 님이 쓰신 글 :
: : : : cmd에서 route print 했을때
: : : :
: : : : 거의 맨 아래쪽
: : : : Default Gateway : 192.168.10.1 이라는 정보를 가져와서
: : : : 비교하려고 합니다.
: : : :
: : : : cmd 데이터를 가져오려면 어떻게 해야하나요?
: : : : CreateProcess 라는걸 쓰면 된다고 하는데
: : : : 좀더 자세히 알려주셨으면 합니다.
: : : :
: : : : 도움 부탁드립니다.

+ -

관련 글 리스트
54695 cmd에서 보이는걸 가져오고 싶습니다 번외편 1110 2008/09/29
54701     Re:cmd에서 보이는걸 가져오고 싶습니다 장성호 2123 2008/09/29
54714         장성호님 감사합니다. 그런데.. 번외편 1454 2008/09/30
54715             Re:장성호님 감사합니다. 그런데.. 장성호 1629 2008/09/30
54717                 성호님께 많은 도움 받네요 감사합니다 ^^ 번외편 1443 2008/09/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.