CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

简单的问题,如何用C++,获取ipconfig执行结果。那位大哥给个例子吧

楼主acemeicn()2005-06-03 10:52:07 在 C/C++ / C++ 语言 提问

如题 问题点数:50、回复次数:7Top

1 楼lucymary1982()回复于 2005-06-03 11:25:03 得分 5

帮忙dingTop

2 楼jingyueid(干宁)回复于 2005-06-03 11:31:20 得分 10

ipconfig   >   test.xx  
   
  将ipconfig的输出重定向输出到test.xx文件。  
   
  ipconfig   |   xxx  
   
  将ipconfig的输出以管道的方式做为xxx的输入。  
   
  重定向和管道,在linux和DOS,WINDOWS上都是支持的。  
   
  可以用这些通信方式来捕获输入,供应用程序调用。Top

3 楼xiao_xiao_zi(笑小子)回复于 2005-06-03 11:50:07 得分 10

用VC通过管道获取ipconfig的输出即可Top

4 楼acemeicn()回复于 2005-06-03 12:05:35 得分 0

可否给个例子,用VC实现的Top

5 楼san_huo(煽风点火)回复于 2005-06-03 12:13:00 得分 25

THREADPARAM   *para=reinterpret_cast<THREADPARAM*>(lParam);  
  CCSPTESTERDlg     *pThis=para->m_pThis;  
   
  SECURITY_ATTRIBUTES   sa;  
  sa.nLength   =   sizeof(SECURITY_ATTRIBUTES);  
  sa.lpSecurityDescriptor   =   NULL;  
  sa.bInheritHandle   =   TRUE;  
   
  HANDLE     hReadpipe,hWritePipe;  
  if   (!CreatePipe(&hReadpipe,&hWritePipe,&sa,0))  
  {  
  pThis->AddMessage(_T("Could't   create   Pipe"),para);  
  return   FALSE;  
  }  
  STARTUPINFO   si;  
  memset(&si,0,sizeof(STARTUPINFO));  
  si.cb=sizeof(STARTUPINFO);  
   
  si.dwFlags=STARTF_USESTDHANDLES|   STARTF_USESHOWWINDOW;  
  si.wShowWindow=SW_SHOW;//很多csp都有UI,所以不能hide   console   window  
  si.hStdOutput=hWritePipe;  
  si.hStdError=hWritePipe;  
  PROCESS_INFORMATION   pi;    
   
  if   (!CreateProcess(NULL,  
  (char   *)para->m_strCmdLine.operator   LPCTSTR(),  
  NULL,  
  NULL,  
  TRUE,  
  0,  
  NULL,  
  NULL,  
  (LPSTARTUPINFOA)&si,  
  &pi))  
  {  
  pThis->AddMessage(_T("Could't   Create   process!"),para);  
  return   FALSE;  
  }  
  DWORD   cchReadBuffer;//number   of   bytes   read   or   to   be   writen  
  CString   sText;  
  TCHAR   ph[5000];  
  for(;;)  
  {  
  cchReadBuffer=0;  
  if(PeekNamedPipe(hReadpipe,ph,1,&cchReadBuffer,NULL,NULL))  
  if(cchReadBuffer)  
  {  
  if(!ReadFile(hReadpipe,  
  ph,  
  4096,  
  &cchReadBuffer,//number   of   bytes   actually   read  
  NULL))  
  break;  
  ph[cchReadBuffer]=0;  
  pThis->AddMessage(ph,para);  
  }  
  else        
  if(WaitForSingleObject(pi.hProcess,0)==WAIT_OBJECT_0)  
  break;            
  Sleep(100);  
   
   
  }  
  ph[cchReadBuffer]=0;  
  pThis->AddMessage(ph,para);  
   
  CloseHandle(hReadpipe);  
  CloseHandle(pi.hThread);  
  CloseHandle(pi.hProcess);  
  CloseHandle(hWritePipe);  
  return   0;  
  Top

6 楼acemeicn()回复于 2005-06-03 12:34:08 得分 0

请问THREADPARAM,CCSPTESTERDlg,lParam的定义在哪里呀Top

7 楼san_huo(煽风点火)回复于 2005-06-04 15:04:19 得分 0

这个都可以自己定义,可以传进任意32的值Top

相关问题

  • 求助:c++大哥请进!
  • C#执行速度问题
  • C/C++执行DOS命令的问题
  • C & C++ 执行档大小问题
  • 循环执行代码!急等!谢谢大哥!
  • 在C#中如何执行可执行文件
  • VISUAL C++程序的执行顺序?
  • 用c写的cgi怎样执行?
  • 在C#中运行可执行文件?
  • C怎么运行可执行文件。

关键词

  • sa
  • null
  • ipconfig
  • hwritepipe
  • si
  • 输出
  • hreadpipe
  • pthis
  • para
  • 管道

得分解答快速导航

  • 帖主:acemeicn
  • lucymary1982
  • jingyueid
  • xiao_xiao_zi
  • san_huo

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo