mfc应用程序调用命令行工具实现输入输出通信 我想用mfc调用系统的ftp.exe并输入各种命令,返回命令执行的结果。 听说用管道方式可以实现,求例子, 谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.csdn.net/wuna66320/archive/2006/09/04/1175802.aspx UINT __cdecl ThreadProc(LPVOID lParam){ HWND hWnd = (HWND)lParam; ASSERT(hWnd); TCHAR szApp[MAX_PATH] = _T("C:\\Windows\\System32\\cmd.exe /c ping www.google.com"); 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.hStdInput = hRead; si.hStdOutput = hWrite; si.hStdError = hWrite; 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 char 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;}http://blog.csdn.net/VisualEleven/archive/2011/04/26/6365366.aspx tab控件设置透明度 无法影响子窗体 ADO, 调用AddNew()时出错!!!!急!!!! VC关闭后MSDev.exe进程没有退出? 关于 InsertItem第一个参数问题 为什么画出的图总是被后一个覆盖? 有没有办法知道一个IP是不是代理服务器? 今天下午的CET六级考得不好,估计不过,心情不好,散分…… 使用ADO,最后关闭_ConnectionPtr,_RecordsetPtr后,析构出错,请教高手. 怎样做椭圆按钮?请高手指教 MFC中,如何得到console程序中的argc,argv?知道么? 用wininet如何获得验证码图片 VC6->VC8 编译错误,奇怪哈.,..
UINT __cdecl ThreadProc(LPVOID lParam)
{
HWND hWnd = (HWND)lParam;
ASSERT(hWnd); TCHAR szApp[MAX_PATH] = _T("C:\\Windows\\System32\\cmd.exe /c ping www.google.com");
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.hStdInput = hRead;
si.hStdOutput = hWrite;
si.hStdError = hWrite; 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
char 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;
}http://blog.csdn.net/VisualEleven/archive/2011/04/26/6365366.aspx