首页 > 解决方案 > c# - GetForegroundWindow 某台电脑 获取代码有误?

问题描述

我在一些计算机中遇到了一个非常奇怪的问题

当我想抓取“In action ie Browser”时,bug 有些使用GetForegroundWindow() 生成的代码是错误的。

在此处输入图像描述

[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
private void btnAi_Click(object sender, EventArgs e)
{
    listBox1.Items.Clear();
    Process[] processes = Process.GetProcesses();

    foreach (Process p in processes)
    {
       if (!p.ProcessName.Equals("Idle"))
       {
          if (p.MainWindowHandle != IntPtr.Zero)
          {
              listBox1.Items.Add(p.ProcessName + "-" + p.MainWindowHandle);
          }
        }
     }
}


MWH = GetForegroundWindow();  // IE 11 --> 67118

GetForegroundWindow()获取编号为 67118,但进程列表 IE 11 处理程序编号为 67212 ???

有的电脑能抓到正确的号码,有的电脑抓不到正确的号码

我已经确认windows版本。(Win 7 32bit)</p>

IE 版本 (IE 11.0.75)

是一致的所以我不知道问题出在哪里。

错误某些计算机是准确的

在此处输入图像描述

标签: c#

解决方案


推荐阅读