2012-06-19 57 views
5

Có cách nào để thao tác với vị trí chuột mà không cần sử dụng System.Windows.Forms.Cursor không? Một cái gì đó như interop có thể?Đặt vị trí chuột không có System.Windows.Forms

Lý do cho điều này là chúng tôi đang sử dụng tập con .NET chuyên biệt không thể bao gồm System.Windows.Forms.

+0

Kiểm tra này ra, đây là những gì Người hỏi trong câu hỏi này không. http://stackoverflow.com/questions/8339565/send-mouse-keyboard-events – bnvdarklord

+0

Có, giống như interop. Pinvoke SetCursorPos(). –

+0

Loại tập hợp con nào? Nó có bao gồm WPF hay WinRT hay một cái gì đó như thế? – svick

Trả lời

6

oops xấu của tôi, đọc câu hỏi quá nhanh, heres đúng PInvoke gọi

[DllImport("user32.dll")] 
static extern bool SetCursorPos(int X, int Y); 

Nguồn: http://www.pinvoke.net/default.aspx/user32.setcursorpos

+0

Tôi đang tìm cách thiết lập vị trí, vì vậy tôi cần http://www.pinvoke.net/default.aspx/user32.setcursorpos –

+0

Thực ra điều tôi thực sự muốn là http://www.pinvoke.net/default.aspx /user32.ClipCursor, tôi chỉ không biết một cái gì đó như thế sẽ tồn tại! Cuộc sống là tốt. –

-2
private void MoveCursor() 
{ 
    // Set the Current cursor, move the cursor's Position, 
    // and set its clipping rectangle to the form. 

    this.Cursor = new Cursor(Cursor.Current.Handle); 
    Cursor.Position = new Point(Cursor.Position.X - 50, Cursor.Position.Y - 50); 
    Cursor.Clip = new Rectangle(this.Location, this.Size); 
} 
+0

Ví dụ mã sau tạo ra một con trỏ từ Handle của con trỏ hiện tại, thay đổi vị trí của nó và cắt hình chữ nhật. Kết quả là con trỏ sẽ di chuyển lên và tới 50 pixel bên trái từ nơi nó được thực hiện khi mã được thực hiện. Ngoài ra, hình chữ nhật cắt của con trỏ được thay đổi thành giới hạn của biểu mẫu (theo mặc định nó là toàn bộ màn hình của người dùng). Ví dụ này yêu cầu Biểu mẫu và Nút để gọi mã này khi được nhấp. –

+3

Câu hỏi nói rằng System.Windows.Forms.Cursor không thể được sử dụng. –

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