如何覆盖在Windows资源管理器中单击文件时发生的情况?

时间:2011-04-04 03:26:22

标签: c# windows windows-7 filesystems explorer

例如,如果我想双击左键在一个程序中打开文件(基于算法),双击右键在另一个程序中打开文件。

另外,我想覆盖外部程序尝试启动(不可执行)文件时发生的情况。

2 个答案:

答案 0 :(得分:2)

我强烈建议您不要覆盖Windows资源管理器的工作方式。人们已经熟悉它的工作方式,改变它会导致人们做他们不想做的事情。

改变一个如此重要的方式,这是一个非常糟糕的主意。

由于技术原因,为什么这是一个坏主意,请参阅Raymond Chen's blog。我在你的个人资料中看到你有C ++技能,我建议用C ++而不是C#来做这件事。

答案 1 :(得分:1)

这不是一件容易的事,但你可以扩展shell或使用系统挂钩:

  1. 创建Windows Shell扩展 - http://msdn.microsoft.com/en-us/library/bb776797(v=vs.85).aspx
  2. 我认为您无法使用Shell Extensions完全实现您所描述的内容。如果你想进一步调查,那么你必须开始玩系统挂钩。在进入MSDN文档之前,有些项目可以开始查看: Shell Extension with Keyboard Hook enter link description here