MFC调用系统Ping命令,并且获取命令输出(隐藏控制台窗口)

65 篇文章 55 订阅 ¥29.90 ¥99.00

新建项目,设置Ping窗口,目的使用ping命令ping地址,并且显示ping命令的输出
在这里插入图片描述

由于获取系统命令输出的过程是在一个while(true)中阻塞进行的,无法进行界面的实时显示,因此使用DoEvent函数进行刷新界面。实现

bool DoEvents()
{
   
	MSG msg;
	while (::PeekMessage(&msg, NULL, 0, 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MFC(Microsoft Foundation Classes)是一组C++的类库,开发人员可以使用它来创建Windows应用程序。获取命令行结果是MFC中的一个常见任务,下面介绍一种实现方式: 使用MFC的CString类和MFC的CStdioFile类,可以方便地获取命令输出结果。具体步骤如下: 1. 使用CreateProcess函数执行命令行。 2. 创建一个CStdioFile对象,并调用CStdioFile的ReadString函数从管道中读取输出流。 3. 循环读取输出流,直到全部读取结束,使用CString类将结果保存。 4. 关闭CStdioFile对象和管道句柄。 下面是代码示例: ```c++ CStdioFile file; CString strResult = _T(""); bool bRet = false; SECURITY_ATTRIBUTES saAttr; saAttr.nLength = sizeof(SECURITY_ATTRIBUTES); saAttr.bInheritHandle = TRUE; saAttr.lpSecurityDescriptor = NULL; HANDLE hRead; HANDLE hWrite; if (CreatePipe(&hRead, &hWrite, &saAttr, 0)) { STARTUPINFO si; memset(&si, 0, sizeof(si)); si.cb = sizeof(si); si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; si.wShowWindow = SW_HIDE; si.hStdInput = nullptr; si.hStdError = hWrite; si.hStdOutput = hWrite; PROCESS_INFORMATION pi; bRet = CreateProcess(nullptr, _T("dir"), nullptr, nullptr, TRUE, 0, nullptr, nullptr, &si, &pi); CloseHandle(hWrite); if (bRet) { file.Attach(hRead); CString strLine; while (file.ReadString(strLine)) { strResult += strLine; } file.Close(); } CloseHandle(hRead); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); } ``` 以上就是一个获取命令输出结果的MFC示例,读者可以根据自己实际的需求进行修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百口可乐__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值