某些计算机获取代码错误?

时间:2018-09-18 13:29:28

标签: c#

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

当我想获取“实际使用中的浏览器”时,使用GetForegroundWindow()进行一些bug生成的代码是错误的。

enter image description here

[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)

IE版本(IE 11.0.75)

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

修正某些计算机正确

enter image description here

0 个答案:

没有答案