2011-05-29 20 views
5

Moim celem jest uzyskanie aktualnej pozycji na ekranie (na zewnątrz formularza) i zapisanie X, Y coords przez naciśnięcie "C" na przykład.Jak uzyskać aktualną pozycję kursora ekranowego?

Ja google i znalazłem sugestię użycia haków api, ale zastanawiam się, czy istnieje sposób, aby wykonać to zadanie wyłącznie w kodzie C# (.NET Lib)?

Proszę dać mi szybkie próbki, jeśli to możliwe, ponieważ jestem nowy do C#.

Dzięki

+0

Czy masz na myśli "bezwzględne współrzędne ekran"? To znaczy. przesunięcie x i y z lewego górnego rogu ekranu (w pikselach)? – corlettk

+0

@corlettk: tak, właśnie o to mi chodzi. – Kelly

+0

@Icky: Tak, proszę Kelly, aby nas zapewnić, że tak naprawdę jest. Prawdopodobnie po prostu nie znał terminologii. – corlettk

Odpowiedz

9

Wystarczy użyć:

Cursor.Position 

lub

Control.MousePosition 

Aby uzyskać pozycję. Następnie można odwzorować zdarzenie KeyPress w formularzu:

private void Form1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == 'c') 
     MessageBox.Show(Cursor.Position.ToString()); 
} 

Poszczególne współrzędne X i Y to dwie właściwości obiektu Position.

Dokumentacja: http://msdn.microsoft.com/en-us/library/system.windows.forms.cursor.position.aspx

+0

Przetestowałem twój kod, ale kiedy nacisnąłem "c klucz, MessageBox nie pojawia się." Czy brakuje mi czegoś? – Kelly

+0

Może poszedłem za szybko. jesteś nowicjuszem C#, ale nie wiem jak nowy, proszę wybacz mi, jeśli to jest zbyt proste, ale czy dodałeś wydarzenie KeyPress do edytora formularzy? – MPelletier

+0

I oczywiście KeyPress na formularzu jest trudną rzeczą, ponieważ jeśli kontrolka ma fokus, to zdarzenie nie jest wywoływane – MPelletier

Powiązane problemy