gpt4 book ai didi

windows - 是什么导致 GetCursorPos 返回不正确的 {0,0} 坐标?

转载 作者:可可西里 更新时间:2023-11-01 11:40:12 25 4
gpt4 key购买 nike

当应用程序在 Server 2008(而非 R2)上运行时,我们发现它有不良行为。这是一个 WinForms 应用程序,无论鼠标在屏幕上的哪个位置,Control.MousePosition 都会返回 {0,0}...Control.MousePosition 只是对 Win32 api GetCursorPos() 进行 P/Invoke 调用。

跟进:

我正在使用 WinForms 中的 Control.MousePosition,它调用 GetCursorPos,我可以看到它肯定会忽略返回值。换个方式问我的问题,“什么会导致 GetCursorPos() 突然开始返回 FALSE,而它在同一个进程中只工作了几毫秒?”

// From .NET Reflector....
public static Point get_MousePosition()
{
NativeMethods.POINT pt = new NativeMethods.POINT();
UnsafeNativeMethods.GetCursorPos(pt);
return new Point(pt.x, pt.y);
}

我们的库中有一个控件调用SetWindowsHookEx 来为我们的整个进程挂接WH_CALLWNDPROCRET。我怀疑这段代码,但跟踪语句显示我们正在干净利落地进入 + 退出那个钩子(Hook)。

我还应该寻找什么?

谢谢,戴夫

最佳答案

事实证明,只有在 64 位 Server 2008 R1 上运行的/LARGEADDRESSAWARE 32 位应用程序才会发生这种情况。

关于windows - 是什么导致 GetCursorPos 返回不正确的 {0,0} 坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2648065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com