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