SetParent(winapi)返回拒绝访问

时间:2014-05-20 09:05:19

标签: c# c++ wpf winapi

我们在WPF窗口内,用GUI窗口启动新进程。然后调用SetParent()将新创建的窗口移动到MainWindow中。以管理员身份运行时,一切正常,但如果以用户身份启动程序(实际上是系统管理员),则SetParent()会因GetLastError()== 5(拒绝访问)而失败。

我尝试过提升当前流程的权限(AdjustTokenPrivileges),但无济于事。

任何想法为什么SetParent可能会失败,我该如何解决?

代码:

process = new Process();
process.EnableRaisingEvents = true;
process.StartInfo.FileName = "some_gui_process.exe";
process.Start();
process.WaitForInputIdle();
var hChildWindow = process.MainWindowHandle;
var hParentWindow = new WindowInteropHelper(window).Handle;
SetParent(hChildWindow, hParentWindow);

0 个答案:

没有答案