我有一个程序,我想把窗口藏起来。
如果进程只有一个窗口,它就会很好地工作。
但是如果有提示对话框、警报对话框或其他子窗口,则隐藏方法只隐藏主窗口,而不是对话框.
你能帮我隐藏进程的所有窗口吗?
非常感谢
这是我的密码:
[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);
}发布于 2011-09-01 07:13:44
您需要通过P/invoke使用更多的Win32 API来获得其他顶级窗口的窗口句柄。
GetWindowThreadProcessId()以获取主窗口的线程ID。EnumThreadWindows()枚举该线程的所有顶级窗口。。
有可能存在与进程中的不同线程相关联的窗口,但这些窗口的可能性小得令人难以置信。
https://stackoverflow.com/questions/7267003
复制相似问题