我声明了以下类:
public partial class MainWindow : Window
当窗口有一个句柄时,我需要获取窗口的实际句柄。我应该如何做,查询函数应该放在哪里。
我尝试过的方法是:
IntPtr hwnd = new WindowInteropHelper(this).Handle;
但是我得到的句柄是0,这可能是因为它被放置在OnInitialized中 - 可能在那个阶段窗口尚未准备好。 而且,是的 - 它通过WPF连接,感谢你指出!
谢谢
我声明了以下类:
public partial class MainWindow : Window
当窗口有一个句柄时,我需要获取窗口的实际句柄。我应该如何做,查询函数应该放在哪里。
我尝试过的方法是:
IntPtr hwnd = new WindowInteropHelper(this).Handle;
但是我得到的句柄是0,这可能是因为它被放置在OnInitialized中 - 可能在那个阶段窗口尚未准备好。 而且,是的 - 它通过WPF连接,感谢你指出!
谢谢
OnInitialized
方法中,handle 还没有被创建。但是你走在了正确的轨迹上。如果将调用放在 Loaded
事件中,handle 就已经被创建,并且它应该返回正确的 handle。 [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");
}