BOOL PingNetIP(CString szIp){ SECURITY_ATTRIBUTES sa; HANDLE hRead,hWrite; sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.lpSecurityDescriptor = NULL; sa.bInheritHandle = TRUE; if (!CreatePipe(&hRead,&hWrite,&sa,0)) { return FALSE; } STARTUPINFO si; PROCESS_INFORMATION pi; si.cb = sizeof(STARTUPINFO); GetStartupInfo(&si); si.hStdError = hWrite; si.hStdOutput = hWrite; si.wShowWindow = SW_HIDE; si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; CString pIP;pIP.Format("ping -n 1 %s", szIp);if (!CreateProcess(NULL, pIP.GetBuffer(0), NULL, NULL, TRUE, NULL, NULL, NULL, &si, &pi)) {return FALSE; } CloseHandle(hWrite); char buffer[4096] = "";char *pBuffer = buffer;DWORD bytesRead; while(1) { if (ReadFile(hRead, pBuffer, 4095, &bytesRead,NULL) == NULL) break; pBuffer += bytesRead;Sleep(200); } CString cResult(buffer);if (cResult.Find("請求逾時") != -1 || cResult.Find("無法訪問目標主機") != -1){return FALSE;}return TRUE;