如何在不使用任何新 API 的情况下在我的简单 .net 应用程序中使用 Windows 7 功能?
我想使用 Windows 7 功能,如图标覆盖和缩略图任务,但我的问题是,我可以在不使用任何其他 API 的情况下在我的普通 .net 3.5 上完成此操作吗?我最近使用 Shell 例程在 c#.net 3.5 中的应用程序上启用了跳转列表,因此可以对图标覆盖和其他 Windows 7 任务栏功能执行类似的操作。
像我确信是几年前制作的记事本这样的旧应用程序可以使用这些新功能吗?
I want to use windows 7 features like icon overlay, and thumbnail tasks but my question is that can i do it without using any other API on just my plain .net 3.5. i recently enabled jumplists on an application in my c#.net 3.5 using the Shell routine so can something like that be done for icon overlay and other windows 7 taskbar features.
And can old application like notepad which i am sure was made years ago use these new feaures?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我想这取决于“使用”的含义。如果您使用通用文件对话框,您可以免费获得跳转列表。如果您的应用程序是 WPF 或 MFC,您可以在这些库的最新版本(不是 3.5)中获得一些 Windows 7 的东西。如果做不到这一点,您将需要直接询问 Windows(使用 API)或使用不属于 .NET 3.5 的库,该库会向 Windows 询问。我建议您使用代码包。例如,一行代码用于覆盖图标。它还具有非可视化 Windows 7 功能,例如重新启动和恢复、电源感知(机器使用电池时的 .NET 事件等)。它的最后更新时间是 2009 年 11 月 18 日,我现在随时期待着新版本的发布。
I guess it depends on the meaning of "use". You get jumplists for free if you use the Common Files Dialog. If your app is WPF or MFC, you get some Windows 7 stuff in the latest version of those libraries (not 3.5). Failing that, you will need to either ask Windows directly (use an API) or use a library that isn't part of .NET 3.5 that will ask Windows for you. I recommend you use the Code Pack. One line of code for an overlay icon, for example. It also has non-visual Windows 7 features like Restart and Recovery, Power Awareness (.NET events when the machine goes on battery etc). It was last updated November 18th 2009 and I am expecting a new release any day now.
如果您确实不想使用 .NET 包装的任务栏功能,
您可以尝试这个通过 PInvoke 调用覆盖的链接。对于其他 W7 任务栏选项,您可以在同一站点上查看。
无论如何,我建议您使用 .NET 托管 API
If you really don't want to use .NET wrapped taskbar functionalities,
you can try this link that calls overlay via PInvoke. For other W7 taskbar options you can check on the same site.
Anyway I suggest you to use the .NET managed API