MFC 中调用telnet问题

写代码的Jaeger 2014-04-20 09:08:47
我想要做的是在cmd窗口中输入 telnet 127.0.0.1 6002 完成连接,然后接收获取数据,存到文件中。
现在能打开cmd,但是输入命令telnet提示【"telnet' 不是内部或外部命令,也不是可运行的程序或批处理文件。】
上面的问题我查到在64位下应该用telnet.exe这个地址C://Windows//sysnative//telnet.exe,但是我不知道怎么改

重写一个telnet的话是不是简单一点?有开发经验的人给点建议。

用的谁匿名管道和CreateProcess()函数

代码粘贴如下
void CTestTelnetDlg::OnBnClickedButton3()
{
SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hRead,&hWrite,&sa,0)) {
MessageBox(_T("Error On CreatePipe()"));
return;
}
STARTUPINFO si;
PROCESS_INFORMATION pi;
si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.hStdError = hWrite;
si.hStdOutput = hWrite;
//si.wShowWindow = SW_HIDE;
si.wShowWindow = TRUE;
// TCHAR cmdline[] =TEXT("c://program files//internet explorer//iexplore.exe http://community.csdn.net/");
// TCHAR cmdline[] =TEXT("C://Windows//System32//cmd.exe /c pythn");
// TCHAR cmdline[] =TEXT("C://Windows//sysnative//telnet.exe");
TCHAR cmdline[] =TEXT("c:\\Windows\\System32\\cmd.exe /c telnet 127.0.0.1 6002");




si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
if (!CreateProcess(NULL,cmdline
,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)) {
MessageBox(_T("Error on CreateProcess()"));
return;
}
//Sleep(20000);
CloseHandle(hWrite);
char buffer[4096] = {0};
DWORD bytesRead;
while (true) {
if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL)
break;
m_Edit1 += buffer;
UpdateData(false);
Sleep(200);
}
}
...全文
166 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧