C# Windows 10在使用默认应用程序运行进程时出错

C# Windows 10在使用默认应用程序运行进程时出错,c#,process,C#,Process,我编写了下面的代码,用默认应用程序运行我的视频文件,并将此过程挂接到我的表单上。 该代码在windows 7上运行良好,但在windows 10上,捕获视频播放器进程句柄时出错 [DllImport("user32.dll")] static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); private void Form1_Load(object sender, EventArgs e)

我编写了下面的代码,用默认应用程序运行我的视频文件,并将此过程挂接到我的表单上。 该代码在windows 7上运行良好,但在windows 10上,捕获视频播放器进程句柄时出错

 [DllImport("user32.dll")]
    static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
    private void Form1_Load(object sender, EventArgs e)
    {
        string fileName = @"c:\1.mp4"; //Path to locked file

        ProcessStartInfo start = new ProcessStartInfo();
        start.UseShellExecute = true;
        start.FileName = fileName;
        start.Verb = "open";

        Process p = Process.Start(start);
       SetParent(p.MainWindowHandle, this.Handle);  //get error on windows 10        
    }

代码可能看起来“运行良好”,但这只是偶然的。请参阅“拥有跨流程的父/子窗口或所有者/所有者窗口关系是否合法?”——其中两条著名的引语“是的,在技术上是合法的。玩电锯在技术上也是合法的。”以及“后果可能很难控制。。。如果所涉及的一个或两个窗口不知道它正在参与跨进程窗口树,则它们几乎无法管理。“-这正是您劫持其他进程窗口所造成的情况。忘记