Wpf 在用户表单中启动应用程序

Wpf 在用户表单中启动应用程序,wpf,vb.net,excel,userform,Wpf,Vb.net,Excel,Userform,Scott Beeson曾在此处发布以下代码以在userform中启动应用程序: Public Class Form1 Declare Auto Function SetParent Lib "user32.dll" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer Declare Auto Function SendMessage Lib "user32.dll" (ByVal hWnd As IntPt

Scott Beeson曾在此处发布以下代码以在userform中启动应用程序:

Public Class Form1
Declare Auto Function SetParent Lib "user32.dll" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer
Declare Auto Function SendMessage Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
Private Const WM_SYSCOMMAND As Integer = 274
Private Const SC_MAXIMIZE As Integer = 61488
Dim proc As Process

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    proc = Process.Start("C:\WINDOWS\notepad.exe")
    proc.WaitForInputIdle()

    SetParent(proc.MainWindowHandle, Panel1.Handle)
    SendMessage(proc.MainWindowHandle, WM_SYSCOMMAND, SC_MAXIMIZE, 0)
    Me.BringToFront()
End Sub
End Class
所以我试着从Excel2007开始,它成功了,尽管并不总是稳定的。但是Excel2010没有以用户表单打开,只是以正常方式打开。我有两个问题:

1有没有人知道如何让XL2010处理这个问题


2您知道如何在WPF主窗口中编写此代码吗?”Panel1.Handle似乎不存在…

这只是一个非常糟糕的主意。无论你为什么要这样做,我几乎可以保证这是错误的。解释一下你想做什么,会有更好的办法。也许是个坏主意。我的理由,测试这个想法有多糟糕!请让我自己找出答案……为了帮助解决excel问题,您必须提供更多调试信息,而不是总是稳定的。嵌入应用程序可能会产生极大的问题,特别是当任何一个应用程序都不能及时处理窗口消息时。听起来,在继续这个项目之前,你有很多阅读要做…----非常感谢你的链接。那里有很多信息。我很感激。不要担心我会遇到的问题和bug:阅读所有关于它的信息,找出困难是什么,这就是项目。它并不总是稳定的:Excel显示功能区,但有时不稳定。嘿,它对我使用它的目的非常有效!!!: