子进程能够继承父进程的所有环境变量
在windows 系统中子进程能够继承父进程的环境变量。但是各类句柄是需要强制指明是否继承的。
父进程代码如下:
namespace ParentProcess
{
class Program
{
static void Main(string[] args)
{
// 设置当前进程环境变量。
System.Environment.SetEnvironmentVariable("TextValue", "This is Parent");
// 启动测试进程
string appPath = AppDomain.CurrentDomain.BaseDirectory + "TestProcessEnv.exe";
ProcessStartInfo pi = new ProcessStartInfo(appPath);
pi.UseShellExecute = false;
Process.Start(pi);
}
}
}
子进程代码如下:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string labelText = System.Environment.GetEnvironmentVariable("TextValue");
label1.Text = labelText;
}
}
运行结果发现当单独启动子进程的时候,界面上不显示任何信息。但是如果通过父进程调用启动,则会显示This is Parent