UWP表单开始菜单VB.Net拖放

UWP表单开始菜单VB.Net拖放,.net,vb.net,winforms,uwp,drag-and-drop,.net,Vb.net,Winforms,Uwp,Drag And Drop,我试图从Windows10的“开始”菜单中“拖放”图标,以获得它的目标;当然,这适用于.lnk,但在处理UWP时,它实际上不是.lnk(据我所知)。FileName、FileNameW和FileDrop始终为“无” 有人能想出一种方法(即使是在应用程序路径中创建一个快捷方式并保存该快捷方式并获得该“目标”路径)而不是将UWP的目标拖到VB.net或C#中的窗体(Windows窗体)上吗;两者都可以 我已经尝试了我能想到的一切,但似乎找不到文档或创建任何逻辑来让它工作。如果其他人需要它,这是可行的

我试图从Windows10的“开始”菜单中“拖放”图标,以获得它的目标;当然,这适用于.lnk,但在处理UWP时,它实际上不是.lnk(据我所知)。FileName、FileNameW和FileDrop始终为“无”

有人能想出一种方法(即使是在应用程序路径中创建一个快捷方式并保存该快捷方式并获得该“目标”路径)而不是将UWP的目标拖到VB.net或C#中的窗体(Windows窗体)上吗;两者都可以


我已经尝试了我能想到的一切,但似乎找不到文档或创建任何逻辑来让它工作。

如果其他人需要它,这是可行的。这是一种简单明了的方法,效果非常理想

Imports Microsoft.WindowsAPICodePack.Shell
然后是德拉根特

If e.Data.GetDataPresent("Shell IDList Array") Then
e.Effect = e.AllowedEffect
End If
然后在DragDrop上

Dim ShellObj = ShellObjectCollection.FromDataObject(e.Data)
For Each itm As ShellObject In ShellObj
' here is where you add what you want to parse the information to 
'like last time I am passing the information to labels and then listbox
'App Name ("Friendly Name")
Label3.Text = itm.Name
'App ID
Label4.Text = itm.ParsingName
'Install Path
Label5.Text = itm.Properties.GetProperty("System.AppUserModel.PackageInstallPath").ValueAsObject

Next
End Sub
Obvs您可以将结果传递到任何您想要的地方。为了简单起见,我使用了标签