我試圖通過在每個鼠標移動事件上將鼠標增量乘以1和0之間的數字來以編程方式減慢鼠標光標。它對X軸的工作很好,但是Y位置總是移回到屏幕的中心,這非常奇怪。OS X鼠標位置問題
我似乎無法找出原因光標的Y位置被向屏幕的中心移動無論你移動鼠標向上向上或向下...
我成立了一個CGEventTap對於鼠標移動事件,這是回調代碼:
CGEventRef
mouse_filter(CGEventTapProxy proxy, CGEventType type, CGEventRef event, float *speed_modifier) {
CGPoint point = CGEventGetLocation(event);
NSPoint old_point = [NSEvent mouseLocation];
CGPoint target;
int tX = point.x;
int tY = point.y;
float oX = old_point.x;
float oY = old_point.y;
float dX = tX-oX;
float dY = tY-oY;
dX*=0.1, dY*=0.1;
tX = round(oX + dX);
tY = round(oY + dY);
target = CGPointMake(tX, tY);
CGWarpMouseCursorPosition(target);
return false;
}
有人可以幫我弄清楚如何做到這一點?
我在應用程序運行過程中記錄了一些值,發現oY
似乎沒有包含期望值......它似乎總是接近430,通常在幾個像素內。 tY
包含表面上正確的目標值,所以它從一個迭代應該等於tY
(它適用於X值),但是,oY
總是接近430,即使當鼠標時,oY
應該朝着屏幕的頂部移動。這讓我覺得dY
在某種程度上被設置爲一個值,將使oY
回到約430,但我無法弄清楚這是怎麼回事,因爲dY
似乎輸出正確的值以及...