我在powershell控制台中测试以下命令:
get-process thunderbird |% { $_.MainWindowHandle }
当窗口可见时,它返回一个值,但是当我隐藏它时(实际上,使用插件从样式中删除WS_VISIBLE),它返回0.。
据我了解,这只是.Net System.Diagnostics.Process.MainWindowHandle
行为。所以,问题是:.Net / powershell中最简单的方法是获取进程的主窗口句柄,如果它不可见?
答案 0 :(得分:1)
这会有帮助吗?它需要使用P / Invoke.NET。如果窗口被隐藏,那么使用互操作/本机代码可能是唯一的方法。
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);