CreateProcess函数诡异的表现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CreateProcess函数诡异的表现相关的知识,希望对你有一定的参考价值。

 场景:程序A使用CreateProcess函数去启动另一个程序(.exe)文件,在绝大部分情况下是可以成功启动的,但是在某些电脑上无效。

 

因为这“某些电脑”实在不好找,终于有一天借到一台这样的电脑。

 

经过多次实验发现,CreateProcess返回值总为-1,也就是成功创建了进程,而且我是用showPrompt,弹窗打印的该值,如果弹窗,就能创建进程。

 

最后猜想可能是因为CreateProcess之后,随即程序退出了,并不会等程序B创建完成,会不会太快了,导致电脑没反应过来。最后加了一个Sleep(5000); Delphi,程序B就能启动了。

 

查看了一下msdn,第一句话是这样的:The new process runs in the security context of the calling process.不知道是否与此有关。

 

如有知晓者,请解答,谢谢。

以上是关于CreateProcess函数诡异的表现的主要内容,如果未能解决你的问题,请参考以下文章

SetWinEventHook 与 CreateProcess, C++

CreateProcess 函数中的问题!

Javajava Arrays.asList 在idea 下 debug 不同结果的表现 非常诡异 胆小勿入

C语言 -- CreateProcess创建进程

将 CreateProcess 输入流重定向到文件

CreateProcess() API 函数有啥用?