2009-06-02 8 views
0

Je fais un outil simple. Si je glisse n déposer des fichiers, des dossiers dans mon formulaire, il ouvrira automatiquement le fichier et le dossier correspondant. Maintenant, je veux le faire pour .lnk fichiers (raccourcis) si je fais glisser un fichier .lnk, il doit ouvrir le fichier cible.glisser-déposer des options

Répondre

2

Ok c'est un simple maquette mais vous devriez avoir l'idée ...

d'abord ajouter le COM « Windows Script Object Model Host » référence à votre projet.

suivant comprend la ligne ...

using IWshRuntimeLibrary; 

Pour cet exemple, je viens d'utiliser une zone de liste de contrôle, mais utilisez ce que vous voulez ... Si vous gérez le DragEnter événement, vous pouvez obtenir le le nom du fichier est passé en argument. Vous pouvez ensuite créer un objet WshShell pour obtenir le chemin cible des liens.

private void listBox1_DragEnter(object sender, DragEventArgs e) 
{ 
    String[] fileName = (String[])e.Data.GetData("FileName"); 

    WshShell shell = new WshShell(); 
    IWshShortcut link = (IWshShortcut)shell.CreateShortcut(fileName[0]); 

    String targetPath = link.TargetPath; 

    listBox1.Items.Add(targetPath); 
} 

Le code ne gère pas les raccourcis non etc, mais il devrait vous donner une entrée ... :)

+0

Nice one crayeux :) –