【问题标题】:Deskband in Windows 7 x64 C#? [closed]Windows 7 x64 C# 中的桌带? [关闭]
【发布时间】:2011-04-22 18:46:30
【问题描述】:

我想用 C# 创建一个桌带应用,比如 BatteryBar。我了解桌带可能无法在未来版本的 Windows 中工作,您不应该在托管代码中编写资源管理器扩展,等等。我的问题是,目前推荐的在 C# 中创建桌带(或模拟桌带)的方法是什么?提前致谢!

【问题讨论】:

  • @Ramhound,我看到了这些,但他们几乎解释了如何解决 Windows 7 上 IDeskBand 的某些问题等。我不知道从哪里开始(IDeskBand 2 除外)。跨度>

标签: c# windows-7 deskband


【解决方案1】:

这可能无法回答您的问题,但它是与您的问题相关的重要信息:

你说,

我明白......你不应该 托管中的代码资源管理器扩展 代码

这不再是真的。

这曾经是正确的,因为多个版本的 CLR 无法加载到单个进程中。例如,资源管理器无法加载同时使用 .NET 2 和 .NET 1 的扩展;宿主进程将无法加载第二个 CLR 版本。

但是使用带有新 CLR 的 .NET 4,您现在可以在同一进程中运行多个版本的 CLR。因此,如果您使用 .NET 4 编写代码,您将不再面临使主机进程出错的风险。

简而言之,只要您使用 .NET 4 或更高版本,现在可以在托管代码中编写 Explorer 扩展。

【讨论】:

  • 谢谢!知道如何创建资源管理器扩展吗?
  • 这仍然是正确的,在托管代码中对资源管理器扩展进行编码只是稍微不那么糟糕。每次用户打开文件对话框时都拉入所有 CLR 完全是蹩脚的,你的用户会讨厌你。现在,如果你想在 C# 中原型化,然后用 C++ 重写它,这不是一个坏主意。
  • Paul,桌带是 UI 扩展,而不是外壳命名空间扩展。它不会在任意进程中加载​​。但我同意你的结论,即使只有 explorer.exe 出现减速也已经够糟糕了。
  • 感谢盛先生提供的信息。保罗,这是真的。我觉得很有趣,您是基于 CLR 构建的出色 UI 框架的作者,他说“不要将 CLR 加载到 explorer.exe” :-) 更严重的一点是,究竟是什么开销,加载CLR需要吗?我们有性能或内存测量吗?
猜你喜欢
  • 2011-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-28
  • 1970-01-01
  • 1970-01-01
  • 2011-07-17
  • 2011-03-23
相关资源
最近更新 更多