CreateProcess创建的子进程的命令行参数

【并发编程二】c++创建子进程CreateProcess() CreatProcess()需要若干参数来指定新进程的运行方式,但实际使用中多半参数都是用不到的,可以设置为NULL。int main(int argc, char*argv[])_argc 是整型变量,argv 是指向字符串的指针数组。进程相关的API 阅读详情
 

用CreateProcess创建的子进程所获得的命令行参数有以下几种情况:

1.子进程中,WinMain函数的第三个参数lpCmdLine表示的命令行参数中除去应用程序路径、文件名以及与参数相隔的空格等字符串后的内容。比如

父进程:

<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript> </script>

CreateProcess(NULL, “c://test.exe -p“, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);

子进程中,lpCmdLine参数为-p,注意没有双引号

2.如果通过lpCmdLine参数查看命令行参数,那么父进程创建子进程的时候,需要在子程序和参数中加上空格号。比如:

父进程:

CreateProcess(“c://test.exe”,“ -p“, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);

子进程中,lpCmdLine参数为-p,没有空格了。

3.如果想获得子进程的完整命令行参数,调用GetCommandLine函数。通常通过GetCommandLine函数获得的命令行参数,是父进程调用时的完整参数。

CreateProcess(NULL, “c://test.exe -p“, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);

子进程中,GetCommandLine返回的参数为c://test.exe -p,注意没有双引号

以下情况都是调用GetCommandLine函数获得命令行参数

4.CreateProcess第一个参数是NULL,第二个参数指定子应用程序和命令行参数,那么子进程的命令行参数是第二个参数,不带双引号。比如:

父进程:

CreateProcess(NULL, “c://test.exe -p“, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);

子进程中,GetCommandLine获得的命令行参数为c://test.exe -p

5.CreateProcess第一个参数指定子应用程序路径和文件名,第二个参数为NULL,那么子进程的命令行参数是第一个参数,带双引号。比如:

父进程:

CreateProcess(“c://test.exe“, NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);

子进程中,GetCommandLine获得的命令行参数为”c://test.exe“

6.CreateProcess第一个参数指定子应用程序路径和文件名,第二个参数为传递给子进程的参数,那么子进程的命令行参数是第二个参数,不带双引号。比如:

父进程:

CreateProcess(“c://test.exe“, ”-p“, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);

子进程中,GetCommandLine获得的命令行参数为-p。

此处注意同第二点比较,如果用lpCmdLine查看命令行参数,没什么都没有。但是将”-p”改成” -p”,用可以看到参数是-p,是不是很混乱?

Windows下创建多个进程实例 有些时候,由于程序需要,我们会创建相同的进程实例运行在一台服务器上,通常,Windows使用CreateProcess创建子进程,Linux使用fork创建子进程。 创建子进程的函数定义 注:需要关注的参数,如下所示。 lpApplicationName: The name of the module to be executed(可执行文件名,全路径) lpCommand... 阅读详情

相关推荐

Delphi(XE2)+Win10实现系统服务使用CreateProcessAsUser调用外部exe

众所周知,使用Delphi创建的Service Application系统服务,在XP系统中与桌面交互十分流畅,可以随意打开自己程序的窗口,不过自Vista系统开始后台服务不再允许与桌面系统直接交互了。本例子实现了使用CreateProcessAsUser打开第三方带界面的应用(如notepad.exe)

Delphi调用CreateProcess创建进程

var  si:STARTUPINFO;  pi:PROCESS_INFORMATION;begin  try    FillChar(si,SizeOf(si),0);    FillChar(pi,SizeOf(pi),0);    si.cb:=SizeOf(si);    Result:=CreateProcess(PChar(ExeFilePath),nil,nil,nil,False,...

weixin_33712881的博客 2439

手把手教你搞定Pattern Recognition期刊的LaTeX投稿(附完整模板下载与避坑指南)

本文详细指导如何在Pattern Recognition期刊上使用LaTeX进行投稿,包括模板下载、环境配置、核心排版规范及投稿材料准备。特别强调期刊对格式的严格要求,如数学符号、图像引用等细节,并提供实用技巧和避坑指南,帮助作者高效完成投稿流程。

weixin_30876945的博客 395

VC6.0下创建进程

#include #include using namespace std; int main() { STARTUPINFO si; //FILETIME f1,f2,f3,f4; int n=1; memset(&si,0,sizeof(STARTUPINFO)); si.cb=sizeof(STARTUPINFO); si.dwFla

XQQ524148626的专栏 2156

cs188Inference in Bayes Nets(贝叶斯网络的推理)

cs188Inference in Bayes Nets贝叶斯网络的推理Question1(3 points):Bayes Net StructureQuestion2(1 points):Bayes Net ProbabilitiesQuestion 3(5 points):Join FactorsQuestion4(4 points):EliminateQuestion5(4 points):NormalizeQuestion 6(4 points):Variable EliminationQuesti

weixin_46582817的博客 1674

SPI 协议帧格式深度解析:从 8 位数据到 16 位扩展的 3 种模式

本文深入解析SPI协议的帧格式,涵盖从8位标准到16位扩展的三种模式。通过详细讲解SPI时钟模式、数据宽度配置及实际应用案例,帮助开发者掌握SPI外设的深度定制能力,提升嵌入式系统开发效率。特别适用于连接传感器、存储器和显示器等高速通讯场景。

weixin_34110749的博客 346

CreateProcess创建一个隐藏进程

delphi中使用CreateProcess创建一个隐藏进程 FillChar(StartUpInfo, SizeOf(StartUpInfo), 00); StartUpInfo.dwFlags := STARTF_USESHOWWINDOW; StartUpInfo.w

haiou327’blog 9846

【深度学习新浪潮】Qwen3.5-397B-A17B 深度解析与工程部署实战:超大MoE模型的推理加速与落地

Qwen3.5-397B-A17B是当前开源社区综合能力最强、部署效率最高的超大模型,其MoE架构彻底解决了“大模型难部署、慢、贵”的痛点。

专注:太空算力、AI infra、异构调度、大模型成本工程 1710

CreateProcess 启动带参数的EXE 并获得PID

var    MysqlStartupInfo:TStartupInfo;    MysqlProcessInfo:TProcessInformation;    MysqlPid: Integer; procedure TForm1.Button_StartMysqlClick(Sender: TObject);  FillChar(MysqlProcessInfo,

killer0717的专栏 3109

【原理图PCB专题】Cadence17.4 PCB位号重排与反标

Cadence17.4 PCB位号重排与反标比Cadence16版本更简单一些,那到底如何操作?

一点硬件 1182

在 SAP GUI 里开发与调用 Adobe PDF 表单:SFP 建模 + Driver Program 调用的全流程实战

本文介绍了在SAP系统中使用Adobe PDF表单的完整流程。重点阐述了SAP Interactive Forms相比传统表单工具的优势,特别是在处理复杂排版、条码和交互式字段时的适用性。文章详细说明了开发流程:从安装设计工具Adobe LiveCycle Designer开始,到在SFP事务码中创建Interface和Form的数据模型,再到编写驱动程序的ABAP代码实现PDF输出。特别强调了Interface作为数据契约的重要性,以及如何通过分层设计实现前后端分离开发。最后提供了标准调用链的示例代码,展

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 279

CreateProcess创建的子进程的命令行参数 选择自 ForNormandy 的 Blog

 用CreateProcess创建的子进程所获得的命令行参数有以下几种情况:1.子进程中,WinMain函数的第三个参数lpCmdLine表示的命令行参数中除去应用程序路径、文件名以及与参数相隔的空格等字符串后的内容。比如父进程:CreateProcess(NULL, “c://test.exe -p“, NULL, NULL, FALSE, 0, NULL, NULL, &si,

896

S7-200 SMART PLC 数字量阀门控制功能块(FB)汇总

S7-200 SMART PLC功能块的各种写法可以查看专栏的其它文章,链接地址如下:S7-200 SMART PLC 子程序功能块(阀门控制)_RXXW_Dor的博客-优快云博客_plc控制阀门开关程序由于S7-200 SMARTPLC的子程序种种功能、容量限制,有时想实现多次调用的子程序可能并不是太容易,这篇博客还是给出一些推荐写法,供大家参看。

RXXW_Dor的博客 4003

CreateProcess创建的子进程的命令行参数 - 早雪网

导读:   当前位置:早雪网→ 网络学院→ 编程文档→ VC→ CreateProcess创建的子进程的命令行参数   CreateProcess创建的子进程的命令行参数作者:未知 来源:从互联网收集整理并转载 发布时间:2005-3-8 0:58:39   用CreateProcess创建的子进程所获得的命令行参数有以下几种情况:   1.子进程中,WinMain函数的第三个参数lpCm

xu的blog 2096

启动launch文件时显示找不到franka_ign_ros2_control-system...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 695

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

用CreateProcess创建的子进程所获得的命令行参数有以下几种情况

用CreateProcess创建的子进程所获得的命令行参数有以下几种情况: 1.子进程中,WinMain函数的第三个参数lpCmdLine表示的命令行参数中除去应用程序路径、文件名以及与参数相隔的空格等字符串后的内容。比如 父进程: CreateProcess(NULL,“c:\\test.exe-p“,NULL,NULL,FALSE,0,NULL,NULL,&a...

weixin_33851604的博客 209

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

创建进程时,CreateProcess的前两个参数的作用

<br /><br />用CreateProcess创建的子进程所获得的命令行参数有以下几种情况:<br /><br />1.子进程中,WinMain函数的第三个参数lpCmdLine表示的命令行参数中除去应用程序路径、文件名以及与参数相隔的空格等字符串后的内容。比如<br /><br />父进程:<br /><br />CreateProcess(NULL, “c://test.exe -p“, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);<br /><br /

rein07的专栏 4093

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

CreateProcess传递参数到_tWinMain

 用CreateProcess创建的子进程所获得的命令行参数有以下几种情况:1.子进程中,WinMain函数的第三个参数lpCmdLine表示的命令行参数中除去应用程序路径、文件名以及与参数相隔的空格等字符串后的内容。比如父进程:CreateProcess(NULL, “c://test.exe -p“, NULL, NULL, FALSE, 0, NULL, NULL, &si,

okadler0518的专栏 3922

c++,在windows下调用子进程,并获得子进程的返回值。

win32 API真是相当复杂啊,为了调用一个函数,要读那么多参数,还要查阅相有关连的其它函数…以下是主进程代码 :#include<iostream> #include<windows.h> int main(int argc, char*argv[]) { STARTUPINFO si = { sizeof(STARTUPINFO) };//在产生子进程时,子进程的窗口相关信息

Krishna Lee的博客 8096

OS之Windows API创建子进程(C VS 2008)

调用Windows API创建创建子进程,CreateProcess命令行参数不能直接使用字符串(貌似更高版本的VS没这方面的烦恼)。 #include #include #include int main(void) { STARTUPINFO si; PROCESS_INFORMATION pi; TCHAR scommand[] = TEXT("C:\\WINDOWS\\syste

qq123386926的专栏 1052

创建进程CreateProcess()函数的简单实用

创建进程方法: // lpCommandLine字符串的格式:“exe路径+空格+参数1+空格+参数2+……” CString sParam = ::GetInstance()->GetInstallPath(); sParam += _T("Program2.exe "); // argv[0] 参数0 sParam += _T("params1 "); // argv[1]...

欧特GO 813

向子进程传递参数的问题

先转,不整理。 用CreateProcess创建的子进程所获得的命令行参数有以下几种情况: 1.子进程中,WinMain函数的第三个参数lpCmdLine表示的命令行参数中除去应用程序路径、文件名以及与参数相隔的空格等字符串后的内容。比如 父进程: CreateProcess(NULL, “c:\\test.exe -p“, NULL, NULL, FALSE, 0, NULL, N...

weixin_30326515的博客 335
上一篇: 在 Win32 Application 和 Win32 Console Application 中使用 MFC
下一篇: Rootkit Unhooker v3.8 It's Past, Present and Future of the NTx86 Rootkit Detection
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值