2012-02-21 127 views
1

我有一个程序必须开始执行另一个进程。但子进程不应该继承父进程的环境。即它应该像我从探索者启动程序那样启动。在搜索时,我发现了一些exec *()函数,它们允许您发送一个字符串数组作为环境变量。但是这个过程很麻烦,因为我需要从列表中删除我的程序特定的环境变量,并将它发送给孩子。有没有其他的方式来实现这一点?创建一个进程而不继承父进程的环境变量

回答

1

实现这一目标的唯一方法就是你觉得很麻烦。这真的不是那么难,只是一些无意义的字符串操作。

+0

问题是搞清楚由父程序设置的环境变量。这是第三方软件,您可以在其中编写可执行的程序。它还允许您将其他程序作为程序的一部分进行调用! – 2012-02-21 11:54:50

+0

我不知道为什么你会关心系统提供了哪些值,而不是你在调用之前设置/修改的值,但是因为你似乎在讨论Windows系统,所以我建议你唯一的选择是要解析注册表中的系统环境密钥,然后解析当前的用户密钥。我不知道要检查哪些键,但不应该很难找到。但是,您需要记住,那里的值可能会引用其他需要取消引用并替换其值的环境变量。 – mah 2012-02-21 11:59:40

+0

用户值位于HKCU \ Environment,我在HKLM \ SYSTEM \ ControlSet001 \ Control \ Session Manager \ Environment中找到系统值。尽管我对系统路径感到厌倦,但看起来它可能是可变的。 – mah 2012-02-21 12:05:28

相关问题