15,471
社区成员
发帖
与我相关
我的任务
分享
HANDLE hStdOutRd, hStdOutWr;
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(sa);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hStdOutRd, &hStdOutWr, &sa, 0))
return;
PROCESS_INFORMATION pi;
STARTUPINFO si;
memset(&si, 0, sizeof(si));
si.dwFlags = STARTF_USESTDHANDLES;
si.hStdOutput = hStdOutWr;
si.hStdError = hStdOutWr;
BOOL bRet = CreateProcess(NULL, "Fc.exe /?", NULL, NULL, TRUE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi);
if (!bRet)
{
CloseHandle(hStdOutWr);
CloseHandle(hStdOutRd);
return;
}
else
{
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
CloseHandle(hStdOutWr);
TCHAR szBuf[4096];
DWORD dwReadBytes;
while (ReadFile(hStdOutRd, szBuf, 4095, &dwReadBytes, NULL))
{
szBuf[dwReadBytes] = '\0';
m_ctlEdit.SelSel(-1, -1);
m_ctlEdit.ReplaceSel(szBuf);
}
CloseHandle(hStdOutRd);
HANDLE hNulFile = CreateFile("NUL", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, &sa, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
si.hStdInput = hNulFile;
HANDLE hNulFile = CreateFile("NUL", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, &sa, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
si.hStdInput = hNulFile;
CString cstrSaveFilePath("e:\b.txt");//<---设置保存内容的文件全路径
ShellExecute(NULL, _T("open"), _T("cmd.exe"), _T("/C Fc.exe /? > \"") + cstrSaveFilePath+ _T("\""), NULL, SW_HIDE);