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
[56051] cmd 동작 시키는데 정상적으로 동작은 잘 하는데...
번외편 [wifemylove] 1173 읽음    2009-02-07 15:49
콘솔모드 동작을 시키는데 불필요한 코드가 좀있는것 같습니다.
동작시키는데 시간이 오래걸리는지 리소스가 많이 먹는건지 아니면 cmd 모드가
원래 이런지는 잘 모르겠지만
조금 불안한 면이 있는것 같습니다.
필요없거나 수정할 부분이 있다면 정정좀 해주세요.

         int i,j=3;
         char buffer[512];
         char IP_Gateway[30];
         int IP_Index;
         bool flag;

         DWORD BytesRead;
         AnsiString ResultString;

         HANDLE hwrite, hread;
         SECURITY_ATTRIBUTES sa;
         sa.nLength = sizeof(SECURITY_ATTRIBUTES);
         sa.lpSecurityDescriptor = NULL;
         sa.bInheritHandle = true;

         flag = CreatePipe(&hread, &hwrite, &sa, 0);

         STARTUPINFO si;
         memset(&si, 0, sizeof(STARTUPINFO));
         si.cb = sizeof(STARTUPINFO);
         si.dwFlags = STARTF_USESTDHANDLES;
         si.hStdOutput = hwrite;
         si.hStdError = hwrite;
         PROCESS_INFORMATION pi;

         flag = CreateProcess(NULL, "route print", NULL, NULL,True, DETACHED_PROCESS,
         NULL, NULL, &si, &pi);

         CloseHandle(hwrite);

         while(ReadFile(hread, buffer, sizeof(buffer)-1, &BytesRead, NULL) && BytesRead)
         {
                 buffer[BytesRead] = '\0';
                 ResultString = ResultString + buffer;
         }
         CloseHandle(hread);

         IP_Index = ResultString.AnsiPos("Default Gateway:");
         memcpy(IP_Gateway,&ResultString[IP_Index+22],30);

         CloseHandle(pi.hThread);
         CloseHandle(pi.hProcess);

         for( i=0;i<30;i++)
         {
                if(IP_Gateway[i] == '.' )
                {
                        j--;
                }

                if( j == 0 )
                {
                        j = i +1 ;
                        break ;
                }
         }
         memset(&IP_Gateway[j],0,(30 - j) );

+ -

관련 글 리스트
56051 cmd 동작 시키는데 정상적으로 동작은 잘 하는데... 번외편 1173 2009/02/07
56058     Re:cmd 동작 시키는데 정상적으로 동작은 잘 하는데... 둘리 1191 2009/02/07
56067         Re:Re:cmd 동작 시키는데 정상적으로 동작은 잘 하는데... 번외편 1256 2009/02/07
56070             Re:Re:Re:cmd 동작 시키는데 정상적으로 동작은 잘 하는데... 둘리 1299 2009/02/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.