2011-11-09 253 views
7

我需要能夠將鼠標位置設置爲屏幕/窗口的中間位置。 我該怎麼做?設置鼠標位置

+2

爲什麼不能在用戶只需將光標移動有自己呢? – dreamlax

+1

我認爲這是沒有直接做法的事情之一,因爲它不是一個非常用戶友好的事情。 – dreamlax

+0

我不認爲將鼠標位置設置到某個特定的位置會非常有用...但是,我再也不太確定您想要的程序的外觀... – Gabe

回答

9

該文檔似乎表明CGDisplayMoveCursorToPointCGWarpMouseCursorPosition將做你以後的事情。

編輯:以符合您的最新評論,我會進一步建議CGWarpMouseCursorPosition,關於該文檔的狀態:

例如,這個功能經常被用來移動光標位置 回中心屏幕上的遊戲不希望光標 被顯示邊緣固定。

+0

剛剛嘗試過。感謝您的幫助,但是這個功能似乎在我的遊戲中覆蓋了我的鼠標處理程序。 –

+2

@ChaseWalden,通過「覆蓋」你的意思是什麼?他們不再被稱爲? –

+0

是啊。它可能會響應2-3幀,然後鎖定。 –

-1

您可以使用[NSEvent mouseLocation]來獲取光標的當前位置,但我找不到任何直接將位置設置到屏幕中心的方法。

+0

那麼你爲什麼回答而不是評論? – Dani

+0

我犯了一個錯誤,併發布了一個答案,認爲這是一個有關iPhone的問題,然後我意識到我的錯誤,並迅速修復了一個新的答案 – Gabe

4

上週我在做類似的事情。

CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState); 
    CGEventRef mouse = CGEventCreateMouseEvent (NULL, kCGEventMouseMoved, CGPointMake(X, Y), 0); 
    CGEventPost(kCGHIDEventTap, mouse); 
    CFRelease(mouse); 
    CFRelease(source); 

只需設置X和Y

編輯:

#include <ApplicationServices/ApplicationServices.h> 
+0

這(至今)對我很好。我在一個應用程序中使用[NSCursor hide]來啓動混洗的全屏視頻(將機器設置爲沒有用戶交互的安裝)。這樣做可以防止鼠標被看到或懸停在菜單欄上。 – viperld002