使用什么语言编写 Windows shell 扩展

发布于 2024-09-15 00:14:02 字数 558 浏览 15 评论 0原文

我知道如何在 python 中编写 shell 扩展。
缺点是

  • 它不能在 64 位 Windows 上运行,
  • 我不确定每次“发生”事情时创建一个 python 进程会如何降低性能。

我知道如何使用 .Net (C#) 编写 shell 扩展
缺点是

  • MS不鼓励
  • 我不确定这是怎么回事降低性能。 (是吗?)

我见过用(免费)pascal 编写的 shell 扩展。

  • 使用这种方法有缺点吗
  • ?这是否适用于 64 位 Windows。

显然,人们可以使用 c 或 c++ 编写 shell 扩展

  • 好吧...我仍在尝试理解 c 和 c++ 中的 com...

还有其他选项,还有其他语言吗?
它们有缺点吗?

I know how to write shell extesions in python.
The drawbacks are

  • it does not work on 64 bit Windows
  • I am unsure how creating a python process everytime something “happens” reduces performance.

I know how to write shell extensions using .Net (C#)
The drawbacks are

I have seen shell extenions written in (free)pascal.

  • Are there drawbacks using this approach
  • Does this work with 64bit windows.

Obviosly one can write shell extensions using c or c++

  • Well... I am still trying to understand com in c and c++....

What other optios are there, what other languages ?
Do they have drawbacks?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

下雨或天晴 2024-09-22 00:14:02

自从 .NET 4 出现以来,MS 现在支持 .Net 的 Shell 扩展,因为主要问题(无法在 shell 中托管多个 CLR 版本)已通过 并排机制:

能够拥有多个
与任何其他进程一起运行的运行时
运行时,我们现在可以提供一般
支持编写托管 shell
扩展——甚至那些运行的扩展
任意应用程序的进程内
在机器上。我们仍然不
支持使用编写 shell 扩展
任何早于 .NET 的版本
Framework 4 因为这些版本
运行时不在进程内加载
彼此之间并且会导致
很多情况下都会失败。

Since .NET 4 came along, MS now do support .Net for Shell Extensions, since the major problem (cannot host multiple CLR versions in shell) has been solved through the side-by-side mechanism:

With the ability to have multiple
runtimes in process with any other
runtime, we can now offer general
support for writing managed shell
extensions—even those that run
in-process with arbitrary applications
on the machine. We still do not
support writing shell extensions using
any version earlier than .NET
Framework 4 because those versions of
the runtime do not load in-process
with one another and will cause
failures in many cases.

洋洋洒洒 2024-09-22 00:14:02

由于explorer一直在运行,请尽可能使用高效且接近操作系统的语言。请使用 C 或 C++。

because explorer is running all the time, please use a language that is efficient and close to the OS as possible. C or C++ please.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文