我需要在我的 wpf 应用程序上封装 exe。我的 wpf 应用程序非常大并且有许多 UserControls。为此,我从我的代码中启动 exe,然后获取句柄并使用“setParent”将 exe“绑定”到我的应用程序,但唯一的效果是显示 exe 的下拉菜单,但是不是主页。例如:我尝试嵌入记事本,但是当我单击该区域时只出现下拉菜单(请注意,不会出现主菜单栏)。
var procInfo = new System.Diagnostics.ProcessStartInfo(this.exeName);
procInfo.WorkingDirectory = System.IO.Path.GetDirectoryName(this.exeName);
// Start the process
_childp = System.Diagnostics.Process.Start(procInfo);
// Wait for process to be created and enter idle condition
_childp.WaitForInputIdle();
// Get the main handle
_appWin = _childp.MainWindowHandle;
// Get main window handle
var helper = new WindowInteropHelper(Window.GetWindow(this.AppContainer));
// Incapsulate
SetWindowLongA(_appWin, -20, 0x00000040 | 0x00000008);
SetParent(_appWin, helper.Handle);
请注意,我已经在其他 c# 应用程序中尝试过这段代码并且工作正常!我认为重绘/更新视口存在问题。我可以通过哪种方式强制重绘我的应用程序中的外部 exe?你能帮助我,甚至找到嵌入 exe 的替代解决方案吗?谢谢
我已经尝试过在单独的选项卡(此处)中运行 exe 的解决方案,但即使这个解决方案也不起作用。
我可以用“SendMessage”解决这个问题吗???你能建议我做一个测试吗?
我问你一件事:救救我!!!