CloseMainWindow()关闭Windows资源管理器窗口的问题

时间:2010-04-05 15:06:58

标签: c# process pinvoke

我在使用“Process.CloseMainWindow()”方法尝试通过其他应用程序关闭Windows资源管理器(而非Internet Explorer)窗口时遇到问题;因为它没有关闭资源管理器窗口,所以它试图关闭完整的Windows(操作系统),顺便说一下,Windows XP。

代码如下:

[DllImport("user32.dll")]
    static extern int GetForegroundWindow();

    [DllImport("user32.dll")]
    private static extern UInt32 GetWindowThreadProcessId(Int32 hWnd, out Int32 lpdwProcessId);


    public String[] exeCommand()
    {

        try
        {
            //Get App
            Int32 hwnd = 0;
            hwnd = GetForegroundWindow();
            Process actualProcess = Process.GetProcessById(GetWindowProcessID(hwnd));

            //Close App
            if (!actualProcess.CloseMainWindow())
                actualProcess.Kill();

        }
        catch { throw; }

        return null;

    }

假设“actualProcess”是“explorer.exe”

任何帮助将不胜感激! 敬礼!

1 个答案:

答案 0 :(得分:1)

我相信这是因为探索的主窗口被认为是shell。但是你可以杀死进程,但是Windows会立即启动它。