菲洛嘉青春动能素135HA FILLMED® NCTF 135HA LED指示灯的常见故障分析 智微智能 Elkhartlake K075终端,零售产业新选择 天空蓝拓客管理系统详细介绍版 muso公链项目 天使计划 是什么?[秘] 独家揭秘最前沿的家装“黑科技”——掌赋 天博体育欧洲杯特辑,东道主法兰西的失意2016 亚马逊的送货侦察员 学习听起来像挡泥板 Google Comics Factory使ML变得容易 笑着说-男性或女性 Amazon Rekognition中更好的人脸检测 关于Spaun的真相-大脑模拟 两个聊天机器人彼此聊天-有趣又怪异 GANPaint:将AI用于艺术 WCF和WF给予社区 从耳朵到脸 所有神经网络的深层缺陷 蠕虫在尾巴上平衡杆子 Kickstarter上的OpenCV AI套件 TensorFlow-Google的开源AI和计算引擎 众包取代新闻工作者 Google的DeepMind学会玩街机游戏 哑机器人V智能机器人 .NET与.NET 5融为一体 Google的深度学习-语音识别 LInQer将.NET LINQ移植到Javascript 机器人TED演讲-新的图灵测试? GAN的发明者加入苹果 您的智能手机会监视您键入的内容 人工智能帮助改善国际象棋 Zalando Flair NLP库已更新 TensorFlow 1.5包含移动版本 AlphaGo输了一场比赛-比分3-1 虚拟机器学习峰会 Microsoft开源AI调试工具 SharePoint走向移动 F#4.0发出文化变革的信号 克里斯蒂拍卖AI艺术品 人工智能如何区分 Facebook在蒙特利尔的新AI实验室 Mozilla想要您的声音 微软使用极深的神经网络赢得ImageNet 建立AI合作伙伴关系 .NET Core 3-Microsoft几乎回到了起点 神经网络-更好的销售商? Google使用AI查找您的住所 虹膜-适用于Android的Siri证明苹果没有优势 TensorFlow 2提供更快的模型训练 深度学习研究人员将为Google工作
您的位置:首页 >程序人生 >

c++ 实现远程CMD

c++ 实现远程CMD

#include "stdafx.h"#include "PipeCmd.h"void ShowError(char *pszText){char szErr[MAX_PATH] = {0};::wsprintf(szErr, "%s Error[%d]\n", pszText, ::GetLastError());::MessageBox(NULL, szErr, "ERROR", MB_OK);}// 执行 cmd 命令, 并获取执行结果数据BOOL PipeCmd(char *pszCmd, char *pszResultBuffer, DWORD dwResultBufferSize){HANDLE hReadPipe = NULL;HANDLE hWritePipe = NULL;SECURITY_ATTRIBUTES securityAttributes = {0};BOOL bRet = FALSE;STARTUPINFO si = {0};PROCESS_INFORMATION pi = {0};// 设定管道的安全属性securityAttributes.bInheritHandle = TRUE;securityAttributes.nLength = sizeof(securityAttributes);securityAttributes.lpSecurityDescriptor = NULL;// 创建匿名管道bRet = ::CreatePipe(&hReadPipe, &hWritePipe, &securityAttributes, 0);if (FALSE == bRet){ShowError("CreatePipe");return FALSE;}// 设置新进程参数si.cb = sizeof(si);si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;si.wShowWindow = SW_HIDE;si.hStdError = hWritePipe;si.hStdOutput = hWritePipe;// 创建新进程执行命令, 将执行结果写入匿名管道中bRet = ::CreateProcess(NULL, pszCmd, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);if (FALSE == bRet){ShowError("CreateProcess");}// 等待命令执行结束::WaitForSingleObject(pi.hThread, INFINITE);::WaitForSingleObject(pi.hProcess, INFINITE);// 从匿名管道中读取结果到输出缓冲区::RtlZeroMemory(pszResultBuffer, dwResultBufferSize);::ReadFile(hReadPipe, pszResultBuffer, dwResultBufferSize, NULL, NULL);// 关闭句柄, 释放内存::CloseHandle(pi.hThread);::CloseHandle(pi.hProcess);::CloseHandle(hWritePipe);::CloseHandle(hReadPipe);return TRUE;}int _tmain(int argc, _TCHAR* argv[]){char szCmd[] = "ping www.baidu.com";char szResultBuffer[512] = { 0 };DWORD dwResultBufferSize = 512;// 执行 cmd 命令, 并获取执行结果数据if (FALSE == PipeCmd(szCmd, szResultBuffer, dwResultBufferSize)){printf("pipe cmd error.\n");}else{printf("CMD执行结果为:\n%s\n", szResultBuffer);}system("pause");return 0;}

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。