【问题标题】:Problems with CloseMainWindow() to close a Windows Explorer windowCloseMainWindow() 关闭 Windows 资源管理器窗口的问题
【发布时间】:2010-04-05 15:06:58
【问题描述】:

我在尝试使用“Process.CloseMainWindow()”方法通过另一个应用程序关闭 Windows Explorer(不是 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”

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

【问题讨论】:

  • Explorer.exe 可以显示多个窗口。您需要缩小您可能要关闭的特定问题的范围。

标签: c# process pinvoke


【解决方案1】:

我相信这是因为探索的主窗口被认为是外壳。但是,您可以终止该进程,但 Windows 会立即启动它。

【讨论】:

  • Kill 方法有效,它关闭了资源管理器窗口并且没有重新启动它,但我想知道是否有一种不太重要的方法来关闭资源管理器窗口。谢谢!
  • 你想要完成什么
猜你喜欢
  • 2017-01-28
  • 2016-04-17
  • 1970-01-01
  • 1970-01-01
  • 2015-12-20
  • 1970-01-01
  • 1970-01-01
  • 2018-07-28
  • 1970-01-01
相关资源
最近更新 更多