我需要將exe封裝在我的wpf應用程序中。 我的wpf應用程序非常大,並有許多UserControls。 要做到這一點,我已經從我的代碼啓動exe,然後獲取句柄,並使用「setParent」將exe綁定到我的應用程序,但唯一的影響是顯示exe的下拉菜單,但不是主頁面。例如:我試圖嵌入記事本,但當我點擊該區域時只出現下拉菜單(請注意,不出現在主菜單欄中)。在wpf中的c#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文件嗎?由於
我試圖運行在一個單獨的標籤(here)exe文件的解決方案,但即使這個解決方案行不通。
我可以使用「SendMessage」解決這個問題嗎? 你能建議我做一個測試嗎?
我問你一件事:幫幫我!
HTTP:/ /www.pinvoke.net/default.aspx/user32.RedrawWindow? – tolanj
或者這是Z指數的問題?我不是100%確定你正在努力實現什麼...... – tolanj
http://www.pinvoke.net/default.aspx/user32/BringWindowToTop.html ?? – tolanj