createpipe关于 CreateProcess 到指定目录下执行某个命令,如何指明路径

createpipe  时间:2021-06-05  阅读:()

VC如何利用匿名管道实现进程间通信?

void CParentProcessDlg::OnOK() { SECURITY_ATTRIBUTES SecurityPipe; SecurityPipe.bInheritHandle = TRUE; SecurityPipe.lpSecurityDescriptor = NULL; SecurityPipe.nLength = sizeof(SECURITY_ATTRIBUTES); if (CreatePipe(&m_hRead,&m_hWrite,&SecurityPipe,0)) { STARTUPINFO strinfo; memset(&strinfo,0,sizeof(STARTUPINFO)); strinfo.cb = sizeof(STARTUPINFO); strinfo.hStdInput = m_hRead; strinfo.dwFlags = STARTF_USESTDHANDLES; strinfo.hStdOutput = m_hWrite; PROCESS_INFORMATION procInfo; memset(&procInfo,0,sizeof(PROCESS_INFORMATION)); CreateProcess(NULL,"ChildProcess.exe",&SecurityPipe,&SecurityPipe,TRUE,CREATE_NEW_CONSOLE,NULL,NULL,&strinfo,&procInfo); char data[]="明日科技"; unsigned long len; if (! WriteFile(m_hWrite,data,8,&len,NULL)) { MessageBox("数据写入失败"); } } else MessageBox("匿名管道62616964757a686964616fe4b893e5b19e31333332616364创建失败"); } void CChildProcessDlg::OnButtonread() { HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE); if (hInput != INVALID_HANDLE_VALUE ) { char data[10]; memset(data,0,10); unsigned long len; int pos = ReadFile(hInput,data,10,&len,NULL); m_Data = data; UpdateData(FALSE); CloseHandle(hInput); } }

c++中管道问题,为什么 老是捕获不到printf 的数据

你虽然设置了STD_OUTPUT_HANDLE,但是并不是把它挂到stdout上了,所以printf仍然输出到console。

你需要做如下操作: int hout = _open_osfhandle((long)hWrite, _O_TEXT); FILE *fout = _fdopen(hout, "wt"); *stdout = *fout; 这样把hWrite挂给stdout,然后printf才会给hWrite输出。

还要注意的是要调用fflush(stdout)。

这是因为printf对标准输出是自动刷缓冲到设备的,但对重定向却不会,所以要自己手动刷。

关于 CreateProcess 到指定目录下执行某个命令,如何指明路径

以下是 CreateProcess 函数的原型 BOOL CreateProcess ( LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCTSTR lpCurrentDirectory, LPSTARTUPINFO lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation ); 可以看得出来倒数第三个参数是设置当前程序的所在路径的,你不妨试一下,我一般用的是CreateProcessW,从参数看来,好像是一样的,这个我没有去深究,但是相对ShellExecute,CreateProcess还是与之不同的,这个我在实践中发现CreateProcess是由系统分配环境,然后具体怎么执行我就一下子说不清楚了,但是ShellExecute执行过程就是将文件名以及参数传递给DOS命令,然后由终端去运行,这个过程就有点类似于我们手动双击该EXE一样, 对了,LS的可以试一下,先将应用程序切换当前所在目录试一下,你不是说一定要在C:\Users\ai\\android-sdk-windows\tools 目录下执行吗?那你在代码中增加切换工作目录的操作,应该能成功

器安装环境和运维管理工具推荐

今天看到一个网友从原来虚拟主机准备转移至服务器管理自己的业务。这里问到虚拟主机和服务器到底有什么不同,需要用到哪些工具软件。那准备在下班之间稍微摸鱼一下整理我们服务器安装环境和运维管理中常见需要用到的软件工具推荐。第一、系统镜像软件一般来说,我们云服务器或者独立服务器都是有自带镜像的。我们只需要选择镜像安装就可以,比如有 Windows和Linux。但是有些时候我们可能需要自定义镜像的高级玩法,这...

香港、美国、日本、韩国、新加坡、越南、泰国、加拿大、英国、德国、法国等VPS,全球独立服务器99元起步 湘南科技

全球独立服务器、站群多IP服务器、VPS(哪个国家都有),香港、美国、日本、韩国、新加坡、越南、泰国、加拿大、英国、德国、法国等等99元起步,湘南科技郴州市湘南科技有限公司官方网址:www.xiangnankeji.cn产品内容:全球独立服务器、站群多IP服务器、VPS(哪个国家都有),香港、美国、日本、韩国、新加坡、越南、泰国、加拿大、英国、德国、法国等等99元起步,湘南科技VPS价格表:独立服...

Hostio€5/月KVM-2GB/25GB/5TB/荷兰机房

Hostio是一家成立于2006年的国外主机商,提供基于KVM架构的VPS主机,AMD EPYC CPU,NVMe硬盘,1-10Gbps带宽,最低月付5欧元起。商家采用自己的网络AS208258,宿主机采用2 x AMD Epyc 7452 32C/64T 2.3Ghz CPU,16*32GB内存,4个Samsung PM983 NVMe SSD,提供IPv4+IPv6。下面列出几款主机配置信息。...

createpipe为你推荐
应用雷达雷达在各方面的用途企业资源管理系统企业内部管理系统有哪些seo优化技术做seo需要懂什么技术?谷歌图片识别怎么通过一张GIF图在网上搜索出其出处(你们懂的...)以图搜图那个百度只找到了一模一样的..,有腾讯贴吧QQ贴吧图标灭了后该怎样再点亮?人脸识别解锁手机解锁的人脸识别怎么设置网站推广软件破解版寻 营销软件 免费的 破解的 注册机 什么样的都可以只要功能全强大视频比特率是什么视频和音频中的比特率是什么?(详细点)平安易贷app平安易贷app下载anyradioOPPO手机收音机在哪
虚拟主机评测 in域名注册 泛域名解析 主机屋 lunarpages sub-process 搜狗抢票助手 免费静态空间 服务器架设 免费ftp站点 坐公交投2700元 徐正曦 1g内存 shopex主机 万网主机管理 lick smtp服务器地址 主机管理系统 英雄联盟台服官网 cdn网站加速 更多