我宣布了以下类:
public partial class MainWindow : Window
一旦窗口有一个,我需要得到窗口的实际句柄。 我怎么做,我应该把查询function。
我到目前为止所尝试的是:
IntPtr hwnd = new WindowInteropHelper(this).Handle;
但是我得到的句柄是0,这可能是因为它是在OnInitialized中植入的 – 也许窗口在这个阶段还没有准备好。 而且,是的 – 它通过WPF连接,谢谢你指出!
谢谢
在OnInitialized
方法中, 句柄尚未创建。 但是你正走在正确的轨道上。 如果您将呼叫置于Loaded
事件中,则该句柄将被创建,并返回正确的句柄 。
你可以得到句柄的最早的地方是OnSourceInitialized
[DllImport("user32.dll", EntryPoint = "FindWindowEx")] public static extern int FindWindowEx(int hwndParent, int hwndEnfant, int lpClasse, string lpTitre); int hwnd = FindWindowEx(0, 0, 0, title);//where title is the windowtitle //verification of the window if (hwnd == 0) { throw new Exception("Window not found"); }