Bonjour,

Je souhaite gérer une liste de racourcis. Pour celà j'utilise un ListView dans lequel j'ajoute mes fichiers par drag and drop depuis windows.Cette partie là fonctionne, voici le code (au cas où):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
 var
  FileNbr, i: Integer;
  FileName: String;
  Files: Array[0..255] of Char;
  ListItem: TListItem;
 
procedure TFichier.FormCreate(Sender: TObject);
begin
  DragAcceptFiles(Self.Handle,True);
end;
 
procedure TFichier.DropMsg(var msg: TWMDropFiles);  // faire le drag and drop
begin
  FileNbr:= DragQueryFile(Msg.Drop, $FFFFFFFF, Files, SizeOf(FileName));
  for i:=0 to FileNbr-1 do
  begin
    FileName:=copy(Files, 0, DragQueryFile(Msg.Drop, i, Files, 255));
    ListItem:=ListView1.Items.Add;
    ListItem.Caption:=ExtractFileName(FileName); //Column 0 - Nom
    ListItem.SubItems.Add(FileName); //Column 1 - Origine
  end;
  Msg.Result:=0;
  DragFinish(msg.Drop);
end;
Ce qui ne marche pas c'est lorsque je souhaite ouvrir l'un des racourci en cliquant dessus. J'utilise shellexecute comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
procedure TFichier.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
  ShellExecute(0,'open',PChar(filename) , Nil, Nil, SW_SHOW);
end;
Avec cette ligne je n'obtient que des erreurs, je pense que c'est a cause de "FileName".

Donc est-ce que quelqu'un saurait comment lancer les raccourcis (qui sont des dossiers, des fichiers textes...comme "mes documents" par exemple) en cliquant dessus?

J'espére avoir été clair dans ma demande (il est 00:40 et mes facultées mentales se dégradent passé minuit ).

Merci.