2012-06-19 13 views
5

C'è un modo per manipolare la posizione del mouse senza utilizzare System.Windows.Forms.Cursor? Forse qualcosa come l'interop?Impostazione posizione del mouse senza System.Windows.Forms

Il motivo è che stiamo utilizzando un sottoinsieme .NET specializzato che non può includere System.Windows.Forms.

+0

check this out, questo è ciò che il richiedente in questa domanda fa. http://stackoverflow.com/questions/8339565/send-mouse-keyboard-events – bnvdarklord

+0

Sì, qualcosa come interop. Pinvoke SetCursorPos(). –

+0

Che tipo di sottoinsieme è quello? Include WPF o WinRT o qualcosa del genere? – svick

risposta

6

oops mio male, leggere domanda troppo in fretta, ecco la corretta chiamata PInvoke

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

Fonte: http://www.pinvoke.net/default.aspx/user32.setcursorpos

+0

Sto cercando di impostare la posizione, quindi ho bisogno di http://www.pinvoke.net/default.aspx/user32.setcursorpos –

+0

In realtà quello che volevo veramente è http://www.pinvoke.net/default.aspx /user32.ClipCursor, semplicemente non sapevo che qualcosa del genere sarebbe esistito! La vita è bella. –

-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

Il seguente esempio di codice crea un cursore dalla maniglia del cursore corrente, cambia la sua posizione e il rettangolo di ritaglio. Il risultato è che il cursore si muoverà verso l'alto e verso sinistra 50 pixel da dove si trova quando viene eseguito il codice. Inoltre, il rettangolo di ritaglio del cursore viene modificato ai limiti del modulo (per impostazione predefinita è l'intero schermo dell'utente). Questo esempio richiede che un modulo e un pulsante chiamino questo codice quando viene fatto clic. –

+3

La domanda indica che non è possibile utilizzare System.Windows.Forms.Cursor. –

Problemi correlati