【发布时间】:2009-06-02 05:49:47
【问题描述】:
我正在做一个简单的工具。如果我将 n 个拖放文件、文件夹拖放到我的表单中,它将自动打开相应的文件和文件夹。现在我想为.lnk文件(快捷方式)做这件事,如果我拖动一个.lnk文件,它必须打开目标文件。
【问题讨论】:
标签: c# drag-and-drop
我正在做一个简单的工具。如果我将 n 个拖放文件、文件夹拖放到我的表单中,它将自动打开相应的文件和文件夹。现在我想为.lnk文件(快捷方式)做这件事,如果我拖动一个.lnk文件,它必须打开目标文件。
【问题讨论】:
标签: c# drag-and-drop
好的,这是一个简单的模型,但你应该明白了......
首先将 COM 'Windows Script Host Object Model' 引用添加到您的项目中。
接下来包含该行...
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);
}
该代码不处理非快捷方式等,但它应该给你一个入门... :)
【讨论】: