2010-04-30 3 views
5

Ich versuche, eine C# -Anwendung zu erstellen, die im Tray ausgeführt wird, wo ich Dateien auf dem Symbol ablegen kann. Gibt es eine Möglichkeit, den Pfad der Datei auf dem System Tray-Symbol abgelegt zu bekommen? System.Windows.Forms.NotifyIcon hat keine Ereignisse im Zusammenhang mit Drag & Drop.Drag & Drop auf NotifyIcon im Tray in C#

Antwort

8

ist es nicht möglich dies zu tun, der einfache Weg. Sie können eine Dummy-Form anzeigen, wenn sich der Cursor in einem speziellen Bereich in der Nähe des Notificeicons befindet. Das Dummy-Formular kann den Dateipfad der Datei abrufen.

+0

Die Problemumgehung funktioniert auch nicht, Sie können nicht herausfinden, wo Das Symbol befindet sich. –

+0

Sie können das MouseUP-Ereignis von der NotifyIcon verwenden ..... – Werewolve

+1

@HansPassant - die Shell_NotifyIconGetRect Win32 API kann verwendet werden, um den Speicherort des Symbols abzurufen. – Jules

1

es tatsächlich möglich ist, mit einer etwas hacky Methode zu tun. Fluffy App tun dies für seine Datei-Uploader. Es verwendet Spifftastic, die eine ziemlich saubere kleine Methode verwendet, um die Position des Tray - Symbols zu identifizieren.Anschließend wird ein transparentes Fenster über dem Speicherort des Symbols platziert und als das tatsächliche Drop - Ziel verwendet, aber für den Endbenutzer scheint alles fallen zu lassen Datei auf dem Symbol