c# - 如何获取FireFox新创建的窗口处理程序?

标签 c# .net winapi

我有新的 System.Diagnostics.Process,它启动了 FireFox。如何获取该窗口的Handler?任何想法 - C#、winAPI 函数...任何东西(只是不是 ASM ;) )

最佳答案

启动进程后,您可以调用process.Refresh(),并且process.MainWindowHandle属性最终将包含应用程序主窗口的 native 窗口句柄。

启动该过程后,您可能需要等待一段时间才能填充。

这是一些代码:

Process process = new Process();
// Fill process.StartInfo
process.Start();

do
{
    System.Threading.Sleep(100);
    process.Refresh();
}
while(process.MainWindowHandle == IntPtr.Zero && !process.HasExited);

if(!process.HasExited)
{
    IntPtr hwnd = process.MainWindowHandle;
    // Do whatever you need to do with hwnd
}

关于c# - 如何获取FireFox新创建的窗口处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2494451/

相关文章:

c# - 将 LINQ to Entities 查询中的每个项目转换为接口(interface)的最佳方法是什么?

c# - 输入类型文件,所需属性不起作用

.net - 用 "A"为抽象类加前缀,类似接口(interface)的前缀为 "I"?

c++ - Windows中有没有办法知道进程是否没有响应?

c# - 网络应用程序上的计时器

c# - 在 .NET 中打开任何 Solidworks 2015 3d 模型格式

c# - 使用列表 IndexOf 时未设置 Combobox SelectedIndex

multithreading - WaitForSingleObject while debugging(调试期间一般缓慢)

windows - 发布版本中与 OutputDebugString 相关的开销

C# - LINQ - 对其他表中的字段求和