Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按进程隐藏多个窗口_C#_Windows_Winapi - Fatal编程技术网

C# 按进程隐藏多个窗口

C# 按进程隐藏多个窗口,c#,windows,winapi,C#,Windows,Winapi,我有一个进程,我想隐藏窗口 如果流程只有一个窗口,那么它将非常有效 但是,如果存在提示对话框、警报对话框或其他子窗口,hide方法将仅隐藏主窗口,而不是对话框 你能帮我隐藏一个进程的所有窗口吗 非常感谢 这是我的代码: [DllImport("user32.dll")] private static extern Boolean ShowWindow(IntPtr hWnd, Int32 nCmdShow); public void Show() { Show

我有一个进程,我想隐藏窗口

如果流程只有一个窗口,那么它将非常有效

但是,如果存在提示对话框、警报对话框或其他子窗口,hide方法将仅隐藏主窗口,而不是对话框

你能帮我隐藏一个进程的所有窗口吗

非常感谢

这是我的代码:

[DllImport("user32.dll")]
private static extern Boolean ShowWindow(IntPtr hWnd, Int32 nCmdShow);


    public void Show()
    {
        ShowWindow(_processHwnd, SwShow);
    }

    public void Hide()
    {
        Process[] processRunning = Process.GetProcesses();

        foreach (Process pr in processRunning)
        {

            if (pr.Id == _process.Id)
            {
                _processHwnd = pr.MainWindowHandle;
            }
        }

        ShowWindow(_processHwnd, SwHide);
    }

您需要通过p/invoke使用更多的Win32 API来获取其他顶级窗口的窗口句柄

  • 调用以获取主窗口的线程ID
  • 调用枚举该线程的所有顶级窗口

进程中可能存在与不同线程相关联的窗口,但可能性非常小。

您需要通过p/invoke使用更多的Win32 API来获取其他顶级窗口的窗口句柄

  • 调用以获取主窗口的线程ID
  • 调用枚举该线程的所有顶级窗口

进程中可能存在与不同线程相关联的窗口,但其可能性非常小。

更新您的问题标签。例如,如果这是winforms,请将该标记添加到其中。@rumplin GUI框架不相关,可能很容易成为控制台应用程序,问题完全标记好,可能会添加windowstag@DavidHeffernan这是一个例子,但是你的权利更新你的问题标签。例如,如果这是winforms,请将该标记添加到其中。@rumplin GUI框架不相关,可能很容易成为控制台应用程序,问题完全标记好,可能会添加windowstag@DavidHeffernan这是一个例子,但你的权利