社区
进程/线程/DLL
帖子详情
高手请进!!!高分相赠!!如何配置createprocess的lpEnvironment参数!!!!
lzkycm2000
2003-11-20 11:53:03
我想创建一个新进程,并且新进程和其父进程不在同一个环境中运行,即父进程出现任何异常不会影响子进程。要达到这个目的我应该如何配置lpEnvironment参数谢谢!!!
...全文
302
4
打赏
收藏
高手请进!!!高分相赠!!如何配置createprocess的lpEnvironment参数!!!!
我想创建一个新进程,并且新进程和其父进程不在同一个环境中运行,即父进程出现任何异常不会影响子进程。要达到这个目的我应该如何配置lpEnvironment参数谢谢!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
GR
2003-11-20
打赏
举报
回复
父进程出现异常不影响子进程的方法是关闭父进程与子进程的关系。在父进程里写closehandle(hProcess),hProcess是你子进程的句柄。安全方法是先等待子进程返回句柄然后关闭这个句柄,似乎环境变量没多大的关系。
flinming
2003-11-20
打赏
举报
回复
up
jsean
2003-11-20
打赏
举报
回复
下面是偶程序中的一块代码,可共参考,父子应该是本身运行在各自独立的进程空间的。
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
// Start the child process.
if( !CreateProcess(NULL, // No module name (use command line).
buffer, // Command line.
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
CREATE_NEW_CONSOLE, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&pi ) // Pointer to PROCESS_INFORMATION structure.
)
{
//ErrorExit( "CreateProcess failed." );
AfxMessageBox("CreateProcess failed.");
}
// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
tigerfox
2003-11-20
打赏
举报
回复
两个进程分别运行于独立的空间,互不干扰。
你的两个进程是如何行成父子关系的?
CreateProcess
的命令行
参数
最近使用
CreateProcess
创建rundll32.exe进程,发现并没有正常加载DLL,后来才发现是命令行
参数
传错了,
CreateProcess
并不是我想象的那样,网上找了一下,发现还有许多东西不是想的那么简单。下面的文字翻译自《INFO: Understanding
CreateProcess
and Command-line Arguments》 创建32位进程时
CreateProcess
的行为 案例1 如果传递了ApplicationName
参数
,且CommandLine
参数
是NULL,那么A
CreateProcess
所需要的最少环境变量
关于
CreateProcess
,在MSDN里面有比较详细的文档,但是关于其中的
lp
Environment
参数
却语焉不详,它只是告诉我们这个
参数
该以什么形式使用,但是对于这个
参数
可以传递的内容却闭口不谈,那么什么样的环境变量是必须传递的,什么是不可以传递的呢?本文就此做一番讨论。当然,你大可将这个
参数
设置为NULL,那也就没必要再往下看了。1.1 正常情况下的环境变量Windows提供
CreateProcess
参数
传递
参数
传递是很奇怪,有时候会无法启动,比如:
CreateProcess
("c:\\a.exe","aa bb cc",....),显示出错 通过
CreateProcess
("c:\\a.exe", "\"c:\\a.exe\" c:\\a.exe aa bb cc"...)即可. HANDLE hRead,hWrite; SECURITY_ATTRIBUTES sa; sa...
CreateProcess
传递
参数
到_tWinMain
用
CreateProcess
创建的子进程所获得的命令行
参数
有以下几种情况:1.子进程中,WinMain函数的第三个
参数
lp
CmdLine表示的命令行
参数
中除去应用程序路径、文件名以及与
参数
相隔的空格等字符串后的内容。比如父进程:
CreateProcess
(NULL, “c://test.exe -p“, NULL, NULL, FALSE, 0, NULL, NULL, &si,
CreateProcess
创建的子进程的命令行
参数
用
CreateProcess
创建的子进程所获得的命令行
参数
有以下几种情况: 1.子进程中,WinMain函数的第三个
参数
lp
CmdLine表示的命令行
参数
中除去应用程序路径、文件名以及与
参数
相隔的空格等字符串后的内容。比如 父进程:
CreateProcess
(NULL, “c:\\test.exe -p“, NULL, NULL, FALSE, 0, NULL, NULL, &
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章