给一个Windows句柄(Native),如何使用C#关闭窗口?

use*_*414 5 c# wpf pinvoke winforms

给定窗口的句柄,如何使用窗口句柄关闭窗口?

Jar*_*Par 11

最简单的方法是使用PInvoke并SendMessage使用WM_CLOSE.

[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);

private const UInt32 WM_CLOSE          = 0x0010;

void CloseWindow(IntPtr hwnd) {
  SendMessage(hwnd, WM_CLOSE, IntPtr.Zero, IntPtr.Zero);
}
Run Code Online (Sandbox Code Playgroud)