I am trying to create a C# application that runs in tray where I can drop files on it's icon. Is there any way to get the path of the file dropped on the System Tray icon? System.Windows.Forms.NotifyIcon does not have any events related to drag and drop.
drag and drop on NotifyIcon in tray in C#
Asked Answered
it's not possible to do this, the easy way. You can show a dummy Form, if the cursor is in a special area near the notifyicon. The dummy Form can get the filepath of the droped file.
The workaround doesn't work either, you can't find out where the icon is located. β
Iong
@HansPassant -- the Shell_NotifyIconGetRect Win32 API can be used to retrieve the location of the icon. β
Hardden
Well, as long as you register the guid. β
Iong
It has az example, but it's not fully and written in C++ :(
It actually is possible to do with a slightly hacky method. Fluffy App does this for its file uploader. It uses Spifftastic which uses a pretty neat little method to identify the location of the tray icon. Then a transparent window is placed over the location of the icon and used as the actual drop target, but to the end user it all appears to be dropping the file on the icon.
The Spifftastic.NotifyIconLoc GitHub repository is gone. π β
Silvia
© 2022 - 2024 β McMap. All rights reserved.