我在某些计算机上遇到了一个非常奇怪的问题
当我想获取“实际使用中的浏览器”时,使用GetForegroundWindow()进行一些bug生成的代码是错误的。
[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)
一致 所以我不知道问题出在哪里。
修正某些计算机正确