все, сам дотумкал
| Код | GetDisplayName(FIShellFolder,ID,true) //флаг SHGDN_FORPARSING дает полный путь к файлу
|
таким образом для правильного запуска файлов из virtual listview
| Код | procedure TForm1.ListViewDblClick(Sender: TObject); var RootPIDL, ID: PItemIDList; begin if ListView.Selected <> nil then begin ID := ShellItem(ListView.Selected.Index).ID; if not IsFolder(FIShellFolder, ID) then shellexecute(form1.Handle,'open',PChar(GetDisplayName(FIShellFolder,ID,true)),'','',sw_show) else begin RootPIDL := ConcatPIDLs(FPIDL, ID); SetPath(RootPIDL); end; end; end;
|
|