将文件拖到桌面快捷方式 - 不在应用程序中打开文件

时间:2011-06-21 19:31:50

标签: c# .net drag-and-drop command-line-arguments shortcut

我有一个小的日志查看器应用程序来读取一些自定义日志。我可以将文件直接拖到可执行文件上,然后通过命令行加载它们就好了。

但是,如果我要将文件拖到桌面快捷方式,Windows将不会使用文件作为命令行参数打开应用程序。它根本不会打开应用程序。

我有什么遗失的吗?

这是在Windows 7 Enterprise x64上,未使用任何提升的权限运行。这些都是用C#,.NET 4.0 Client框架等编写的。

3 个答案:

答案 0 :(得分:2)

桌面快捷方式是advertised快捷方式吗?您无法拖放到广告中的快捷方式。如果您使用WiX或Visual Studio安装项目为您的应用程序创建.msi安装程序,那么Windows Installer为您创建的桌面快捷方式可能是一个广告的快捷方式。此外,您可以通过右键单击,查看属性以及查看“目标”字段是否显示为灰色来判断是否公布了快捷方式。如果是,那就是广告。防止这种情况的一种方法是设置DISABLEADVTSHORTCUTS属性,这是一个Windows Installer属性。设置此属性将禁用应用程序的所有通告快捷方式。

设置或测试它的最简单方法是使用Orca打开.msi文件,并将属性值为1的DISABLEADVTSHORTCUTS属性添加到Property表中,然后再次尝试安装。

答案 1 :(得分:1)

我认为,为了通过快捷方式拖动文件,您需要在注册表中定义应用程序,并为其创建open命令注册表项。

以下链接可能是了解如何操作的良好起点。 http://msdn.microsoft.com/en-us/library/ee872121%28v=VS.85%29.aspx

或者只是查看机器注册表中的HKEY_CLASSES_ROOT\Application\notepad.exe下的内容,快速查看示例。

答案 2 :(得分:0)

最简单的方法是使用“DISABLEADVTSHORTCUTS = 1”运行安装程序 命令行选项,例如setup.msi DISABLEADVTSHORTCUTS = 1