我想以编程方式关闭正在运行的应用程序的子窗口。我使用以下代码:
const UInt32 WM_CLOSE = 0x0010;
[DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
public static extern IntPtr FindWindow(String lpClassName, String lpWindowName);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);
public static bool CloseWindowbyTitle(string titleStr)
{
bool result = false;
IntPtr windowPtr = FindWindow(null, titleStr);
if (windowPtr == IntPtr.Zero)
return result;
SendMessage(windowPtr, WM_CLOSE, IntPtr.Zero, IntPtr.Zero);
result = true;
return result;
}
工作正常。但是当子窗口处于编辑模式时,它会要求用户保存已编辑的数据,如果用户单击“是”或“否”,则只有子窗口关闭。
但是我想要强行关闭子窗口,这样一来就不应该关闭它。但我不知道如何实现这一点。
我无法使用Process
类来杀死子窗口,因为没有为该子窗口创建单独的进程。
提前致谢。