Private Sub ListView1_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
 Set WshShell = CreateObject("WScript.Shell")
 Set oShellLink = WshShell.CreateShortcut(Data.Files(1))
  For i = 1 To Data.Files.Count
   ListView1.ListItems.Add i, , Left(Dir(Data.Files(1)), Len(Dir(Data.Files(1))) - 4)   '获取不含扩展名的文件名
   ListView1.ListItems(1).SubItems(3) = Left(Data.Files(1), Len(Data.Files(1)) - Len(Dir(Data.Files(1)))) '获取不含文件名的路径
   ListView1.ListItems(1).SubItems(2) = oShellLink.TargetPath              '获取目标路径
   ListView1.ListItems(1).SubItems(1) = oShellLink.workingdirectory        '获取起始位置
  Next
End Sub怎样修改能实现同时拖拽多个快捷方式到listview并分别获取“不含扩展名的文件名”“不含文件名的路径”“快捷方式的目标路径”“快捷方式的起始位置”呢
帮帮忙啊

解决方案 »

  1.   

    WshShell和oShellLink放入循环内,你的ListView1.ListItems(1)改为ListView1.ListItems(I)Private Sub ListView1_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)   For i = 1 To Data.Files.Count   Set WshShell = CreateObject("WScript.Shell") 
      Set oShellLink = WshShell.CreateShortcut(Data.Files(1))   ListView1.ListItems.Add i, , Left(Dir(Data.Files(1)), Len(Dir(Data.Files(1))) - 4)  '获取不含扩展名的文件名 
      ListView1.ListItems(I).SubItems(3) = Left(Data.Files(1), Len(Data.Files(1)) - Len(Dir(Data.Files(1)))) '获取不含文件名的路径 
      ListView1.ListItems(I).SubItems(2) = oShellLink.TargetPath              '获取目标路径 
      ListView1.ListItems(I).SubItems(1) = oShellLink.workingdirectory        '获取起始位置 
      Next 
    End Sub 
      

  2.   

    将Set oShellLink = WshShell.CreateShortcut(Data.Files(1)) 放入循环内行了