gpt4 book ai didi

c++ - 如何在C++中模拟鼠标光标移动

转载 作者:太空宇宙 更新时间:2023-11-04 06:50:54 27 4
gpt4 key购买 nike

我正在利用业余时间创建一个程序,我正在尝试模拟鼠标光标的移动。

我正在努力做到这一点,以便在我启动我的程序时,它会将我的光标从 [x,y] 移动到 [0,0](这是我屏幕的左上角)。

有没有办法在不传送的情况下做到这一点?

到目前为止,这是我的鼠标光标移动程序:

POINT p;
GetCursorPos( &p );
double mouseX = p.x;
double mouseY = p.y;
SetCursorPos(0, 0);

有什么方法可以真正看到我的鼠标被移动而不是立即传送到 [0,0]?

最佳答案

您将需要一次一点点地逐渐改进您的鼠标。例如,考虑以下伪代码函数:

def moveMouse (endX, endY, stepCount, stepDelay):
GetCurrentPosTo(startX, startY);
for step = 1 to stepCount
currX = startX + (endX - startX) * step / stepCount
currY = startY + (endY - startY) * step / stepCount
SetCurrentPosFrom(currX, currY)
DelayFor(stepDelay)
endfor
enddef

这会将当前位置(在循环内)计算为从 (startX, startY)(endX, endY) 的旅程的一部分,并根据数字进行调整您希望采取的步骤。

因此使用 100 的 stepCount 和 10 毫秒的 stepDelay,鼠标光标将在一秒内平稳移动。

可能有其他的可能性,例如以特定速度移动光标而不是花费特定时间,或者指定最小速度和最大时间来组合两种方法.

我会把它留作额外的练习。可以说它会涉及相同的方法,即每次移动光标一点点,而不是立即将其位置设置为最终值。

关于c++ - 如何在C++中模拟鼠标光标移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51509468/

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