代码片段:获取WPF窗体句柄

对于一个传统的Windows窗体来说,获取其窗口句柄时,只需要访问对象的Handle属性即可,但在WPF应用程序中,却并不是那么容易。以下代码展示了对于一个WPF应用程序,如何获取其窗口句柄。

1
2
3
4
5
6
7
8
9
10
  private HwndSource gHs;
WindowInteropHelper lWih = new WindowInteropHelper(Application.Current.MainWindow);
IntPtr lHwnd = lWih.Handle; \\窗口句柄
gHs = HwndSource.FromHwnd(lHwnd);
gHs.AddHook(new HwndSourceHook(WndProc)); \\Hook法

private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
handled = true;
}