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
目录下执行吗?那你在代码中增加切换工作目录的操作,应该能成功
今天遇到一个网友,他之前一直在用阿里云虚拟主机,我们知道虚拟主机绑定域名是直接在面板上绑定的。这里由于他的网站项目流量比较大,虚拟主机是不够的,而且我看他虚拟主机已经有升级过。这里要说的是,用过阿里云虚拟主机的朋友可能会比较一下价格,实际上虚拟主机价格比云服务器还贵。所以,基于成本和性能的考虑,建议他选择云服务器。毕竟他的备案都接入在阿里云。这里在选择阿里云服务器后,他就蒙圈不知道如何绑定域名。这...
HostKvm,我们很多人都算是比较熟悉的国人服务商,旗下也有多个品牌,差异化多占位策略营销的,商家是一个创建于2013年的品牌,有提供中国香港、美国、日本、新加坡区域虚拟化服务器业务,所有业务均对中国大陆地区线路优化,已经如果做海外线路的话,竞争力不够。今天有看到HostKvm夏季优惠发布,主要针对香港国际和韩国VPS提供7折优惠,折后最低月付5.95美元,其他机房VPS依然是全场8折。第一、夏...
昔日数据,国内商家,成立于2020年,主要销售湖北十堰和香港HKBN的云服务器,采用KVM虚拟化技术构架,不限制流量。当前夏季促销活动,全部首月5折促销,活动截止于8月11日。官方网站:https://www.xrapi.cn/5折优惠码:XR2021湖北十堰云服务器托管于湖北十堰市IDC数据中心,母鸡采用e5 2651v2,SSD MLC企业硬盘、 rdid5阵列为数据护航,100G高防,超出防...
createpipe为你推荐
李智慧李智慧和李东健的电影有哪些?李智慧韩智慧的资料谁有啊?详细的哦~~病历单我想请两天病假,病例单怎么写华为总裁女儿为啥姓孟孟晚舟姓孟,任正非姓任,孟晚舟怎么是任正非的女?搜索引擎的概念7 什么是搜索引擎?如何在Internet上搜索图片和文字资料的?seo优化技术SEO技术是什么?数据统计分析表怎样建立数据透视表和数据分析表?天翼校园宽带天翼校园宽带怎么样用手机打开这个页面登陆数据库界面如何创建数据库电子邮件软件电子邮件软件哪个好用
国内vps 查询ip地址 荷兰服务器 360抢票助手 老左来了 169邮箱 卡巴斯基破解版 移动服务器托管 东莞idc 免费外链相册 linode支付宝 工信部icp备案查询 大化网 汤博乐 websitepanel ipower studentmain blaze tko 西安电信测速网 更多