2014-07-24 6 views
5

Ich habe eine Windows Store App, die ein Bild unter dem Cursor des Systems zeichnet. Ich erfassen alle Cursorbewegungen mit:PointerMoved Ereignis nicht feuern

var window = Window.Current .Content; 
window .AddHandler(PointerMovedEvent, new PointerEventHandler (window_PointerMoved), true); 

Und das funktioniert gut, wenn ich meine Maus verwenden, um den Cursor zu bewegen.

Ich habe jedoch eine andere Anwendung - eine Desktop-Anwendung -, die die Position des Cursors des Systems ändert. Ich benutze diese Methode, um die Position des Cursors programmatisch zu setzen:

[DllImport("user32")] 
    private static extern int SetCursorPos(int x, int y); 

Wenn jedoch die Cursor programmatisch bewegt wird, wird der PointerMovedEvent auf der Store App nicht schießen! Weiß jemand, wie ich dieses Problem lösen kann?

Antwort

0

Ich dachte, ich könnte System.Runtime .InteropServices auf Windows-Store-Anwendungen nicht verwenden, aber es ist erlaubt. Deshalb habe ich es geschafft, das gewünschte Verhalten zu erreichen, indem er mit einem Gewinde, die aktiv die aktuelle Position des Cursors überprüft werden:

[ DllImport("user32.dll")] 
private static extern bool GetCursorPos(ref Win32Point pt); 

Es ist nicht die eleganteste Lösung, aber es funktioniert!