相关疑难解决方法(0)

创建一个不是创建进程的子进程的新进程

我正在开发一个应用程序,其中进程 A 的多个实例依赖于进程的单个实例 B。这个想法是进程 A 的一个实例启动进程 B,以便 A 的所有实例都可以用它。A 的实例托管在第 3 方进程中,并且可以在不可预测的时间点被拆除(通过终止进程树)。因此,进程 B 不是进程 A 的任何实例的子进程至关重要。

我尝试使用 PInvoke 调用 CreateProcess,在创建标志中指定 DetachedProcess (0x08),但这不起作用(请参阅下面的代码)。

[DllImport("kernel32.dll")]
private static extern bool CreateProcess(string lpApplicationName, string lpCommandLine, IntPtr lpProcessAttributes, IntPtr lpThreadAttributes, bool bInheritHandles, uint dwCreationFlags, IntPtr lpEnvironment, string lpCurrentDirectory, [In] ref StartupInfo lpStartupInfo, out ProcessInformation lpProcessInformation);


public Process LaunchProcess(Path executablePath, string args)
{
    StartupInfo sInfo = new StartupInfo();

    const uint creationFlags = (uint)(CreationFlags.CreateNoWindow | CreationFlags.DetachedProcess);

    ProcessInformation pInfo;
    bool success = CreateProcess(executablePath.ToString(), args, IntPtr.Zero, IntPtr.Zero, false, creationFlags, …
Run Code Online (Sandbox Code Playgroud)

c# windows createprocess

1
推荐指数
1
解决办法
4038
查看次数

标签 统计

c# ×1

createprocess ×1

windows ×1