2011-11-09 48 views
7

Tôi cần có thể đặt vị trí chuột ở giữa màn hình/cửa sổ. Tôi có thể làm như thế nào?Đặt vị trí chuột

+2

Tại sao có thể không phải là người dùng chỉ cần di chuyển con trỏ có bản thân? – dreamlax

+1

Tôi nghĩ đây là một trong những điều mà không có cách nào đơn giản để làm điều đó bởi vì nó không phải là một điều rất thân thiện với người dùng để làm. – dreamlax

+0

Tôi không nghĩ rằng thiết lập vị trí chuột đến một điểm nhất định sẽ rất hữu ích ... nhưng sau đó một lần nữa tôi không quá chắc chắn những gì bạn muốn ra khỏi chương trình của bạn ... – Gabe

Trả lời

9

Tài liệu dường như chỉ ra rằng CGDisplayMoveCursorToPoint hoặc CGWarpMouseCursorPosition sẽ làm những gì bạn đang theo dõi.

EDIT: Để phù hợp với bình luận mới nhất của bạn, Tôi cũng muốn giới thiệu CGWarpMouseCursorPosition, về những tài liệu nhà nước:

Ví dụ, chức năng này thường được sử dụng để di chuyển vị trí con trỏ trở lại trung tâm của màn hình bởi các trò chơi không muốn con trỏ được ghim bởi các cạnh hiển thị.

+0

Chỉ cần thử điều này. Cảm ơn bạn đã giúp đỡ của bạn nhưng chức năng này dường như ghi đè lên xử lý chuột của tôi trong trò chơi của tôi. –

+2

@ChaseWalden, Bằng cách "ghi đè", bạn có ý nghĩa chính xác là gì? Họ không còn được gọi? –

+0

vâng. Nó đáp ứng có thể 2-3 khung hình và sau đó khóa lại. –

-1

Bạn có thể sử dụng [NSEvent mouseLocation] để nhận vị trí hiện tại của người duyệt, nhưng tôi không thể tìm thấy bất kỳ cách nào để thẳng lên đặt vị trí vào giữa màn hình.

+0

Vậy tại sao bạn trả lời thay vì bình luận? – Dani

+0

Tôi đã phạm sai lầm và đăng câu trả lời cho rằng đây là một câu hỏi liên quan đến ihone, sau đó tôi nhận ra sai lầm của mình và nhanh chóng sửa một câu trả lời mới – Gabe

4

Tôi đã làm việc trên một cái gì đó như thế tuần trước.

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

Chỉ cần thiết lập X và Y.

EDIT:

#include <ApplicationServices/ApplicationServices.h> 
+0

Điều này (cho đến nay) hoạt động tuyệt vời cho tôi. Tôi sử dụng tính năng này cùng với [NSCursor hide] trong một ứng dụng để khởi chạy các video toàn màn hình bị xáo trộn (đối với các thiết lập máy như các bản cài đặt không có tương tác người dùng). Làm như vậy cho phép tôi ngăn con chuột hiển thị hoặc di chuột qua thanh trình đơn. – viperld002

Các vấn đề liên quan