使用窗口标题强行关闭子窗口

时间:2014-08-28 09:07:17

标签: c# windows user32

我想以编程方式关闭正在运行的应用程序的子窗口。我使用以下代码:

    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类来杀死子窗口,因为没有为该子窗口创建单独的进程。

提前致谢。

0 个答案:

没有答案