拖放选项

时间:2009-06-02 05:49:48

标签: c# drag-and-drop

我正在做一个简单的工具。如果我将n个文件,文件夹拖到我的表单中,它会自动打开相应的文件和文件夹。现在我想为.lnk文件(快捷方式)执行此操作,如果我拖动.lnk文件,它必须打开目标文件。

1 个答案:

答案 0 :(得分:2)

好的,这是一个简单的模拟,但你应该明白......

首先将 COM'Windows脚本宿主对象模型'引用添加到您的项目中。

接下来包括行......

using IWshRuntimeLibrary;

对于此示例,我只使用了一个列表框控件,但使用了您想要的...如果您处理 DragEnter 事件,您可以将文件名作为参数传递。然后,您可以创建 WshShell 对象以获取链接目标路径。

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);
}

代码不处理非快捷方式等但它应该给你一个启动器......:)