获取CMD命令结果 收藏

UINT __cdecl ThreadProc(LPVOID lParam)  
{  
    HWND hWnd = (HWND)lParam;  
    ASSERT(hWnd);  
      
    TCHAR szApp[MAX_PATH] = _T("netstat -s");  
    HANDLE hRead = NULL;  
    HANDLE hWrite = NULL;  
    SECURITY_ATTRIBUTES sa = {0};  
    sa.nLength = sizeof(sa);  
    sa.lpSecurityDescriptor = NULL;  
    sa.bInheritHandle = TRUE;  
      
    if(!CreatePipe(&hRead, &hWrite, &sa, 0))  
    {  
        AfxMessageBox(_T("CreatePipe failed."));  
        return -1;  
    }  
      
    STARTUPINFO si = {sizeof(si)};  
    PROCESS_INFORMATION pi = {0};  
    si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;     
    si.hStdOutput = hWrite;  
    si.hStdError = hWrite;  
    si.wShowWindow = SW_HIDE;  
      
    if(!CreateProcess(NULL, szApp, NULL, NULL, TRUE, NULL, NULL, NULL, &si, &pi))  
    {  
        CloseHandle(hWrite);  
        CloseHandle(hRead);  
        return -1;  
    }  
      
    CloseHandle(pi.hThread);  
    CloseHandle(pi.hProcess);  
    CloseHandle(hWrite);  
 
#define MAX_BUFFER 1024  
 
    TCHAR szBuf[MAX_BUFFER] = {0};  
    DWORD dwRead = 0;  
    CString strText(_T(""));  
      
    while(ReadFile(hRead, szBuf, MAX_BUFFER-1, &dwRead, NULL))  
    {  
        strText += szBuf;  
        memset(szBuf, 0, sizeof(szBuf));  
    }     
    CloseHandle(hRead);  
    AfxMessageBox(strText);  
    return 0;  

UINT __cdecl ThreadProc(LPVOID lParam)
{
 HWND hWnd = (HWND)lParam;
 ASSERT(hWnd);
 
 TCHAR szApp[MAX_PATH] = _T("netstat -s");
 HANDLE hRead = NULL;
 HANDLE hWrite = NULL;
 SECURITY_ATTRIBUTES sa = {0};
 sa.nLength = sizeof(sa);
 sa.lpSecurityDescriptor = NULL;
 sa.bInheritHandle = TRUE;
 
 if(!CreatePipe(&hRead, &hWrite, &sa, 0))
 {
  AfxMessageBox(_T("CreatePipe failed."));
  return -1;
 }
 
 STARTUPINFO si = {sizeof(si)};
 PROCESS_INFORMATION pi = {0};
 si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; 
 si.hStdOutput = hWrite;
 si.hStdError = hWrite;
 si.wShowWindow = SW_HIDE;
 
 if(!CreateProcess(NULL, szApp, NULL, NULL, TRUE, NULL, NULL, NULL, &si, &pi))
 {
  CloseHandle(hWrite);
  CloseHandle(hRead);
  return -1;
 }
 
 CloseHandle(pi.hThread);
 CloseHandle(pi.hProcess);
 CloseHandle(hWrite);

#define MAX_BUFFER 1024

 TCHAR szBuf[MAX_BUFFER] = {0};
 DWORD dwRead = 0;
 CString strText(_T(""));
 
 while(ReadFile(hRead, szBuf, MAX_BUFFER-1, &dwRead, NULL))
 {
  strText += szBuf;
  memset(szBuf, 0, sizeof(szBuf));
 } 
 CloseHandle(hRead);
 AfxMessageBox(strText);
 return 0;
}


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/VisualEleven/archive/2011/04/26/6365366.aspx

你可能感兴趣的:(获取CMD命令结果 收藏)