c# - 我如何开始编写 Windows Shell 扩展?

标签 c# c++ windows windows-shell

我正在考虑编写一个 shell 扩展程序,以便在单击文件时可以对其执行操作。 (与任何其他上下文菜单一样 :))

我需要在上下文菜单中插入一个新的菜单项并对一个或多个文件执行操作的最低要求是多少。一个比较示例是我选择了 10 个文件并发送到 Zip。

我读到需要编写一些非托管代码,但我对 C++ 非托管代码的了解几乎为零,因此我想尽可能少地获取 Windows 上下文菜单中的菜单项(文件 > 右键单击​​)。之后我想调用 C# 控制台应用程序来执行主要处理,那么是否可以从非托管代码调用 C# 控制台应用程序?

此外,创建 Windows Shell 程序需要什么类型的 visual studio 项目?我选择哪种项目类型:

  • Win32 控制台应用
  • MFC 应用程序
  • Win32 项目
  • ATL 项目
  • MFC 动态链接库
  • CLR 控制台应用
  • 类库
  • Makefile 项目
  • MFC ActiveX 控件
  • Windows 窗体控件库

干杯

最佳答案

This MSDN article will get you started.

您生成一个进程(用托管代码编写)来完成 shell 扩展的实际工作的方法应该没问题。我建议通过 CreateProcess 将选定的文件作为命令行参数传递.

至于项目类型,您将需要生成一个 Win32 动态链接库 (DLL)。 2005下,居然还有一个Win32 Dll工程类型。对于 2008(我推断您正在使用),您应该创建一个 Win32 项目,然后在生成的向导中选择 DLL 作为应用程序类型。

关于c# - 我如何开始编写 Windows Shell 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2391334/

相关文章:

c++ - 使用 ctype.h 进行错误处理 (C++)

c++ - cin >> val 有时会读取 0,具体取决于 Ctrl-Z

python - 为 Windows 7 安装哪个 scipy wheel?

c# menuItem1 不会禁用

c# - 从 System.Diagnostics.Process 调用 dism.exe 失败

c# - 为 Azure 媒体服务 Assets 创建按需定位器时出现异常

c# - Outlook 2010 和 Gmail 中的 HTML 呈现

c++ - 使用多线程处理 Qt 应用程序中的升压信号

c# - 如何在 VS 2008 或使用 Coderush Express 中自动生成方法 stub ?

c++ - 模板重载(不同。参数数量)