2013-01-16 82 views
0

我想知道是否有任何方式来扩展任务管理器的语言,如C#最好,但我也可以用C++或其他任何工作。 我想添加一些新功能,例如搜索,杀死所有具有相同名称的进程,以及想到的其他东西,但我不知道要开始。扩展任务管理器Windows 8

注意:我不想替换它或从头开始重写它,只是添加一些新功能。
我也发现这个链接Is it possible to add functionality to Vista/7 taskmgr.exe?,但它是为VIsta/7我只是希望在8的变化,考虑到它完全重新设计。

谢谢

回答

3

如果我是正确的,你想知道什么是,如果有一种方法通过基于插件的方法(如Office/IE/Outlook中的插件)来扩展任务管理器。 答案是否定的。 然而,我有一个不同的方法,可以帮助你做你想做的事,但会做更多的工作。 我建议基于Com interop的注入和覆盖。 使用Spy ++,你可以看到TaskManager窗口的窗口类/属性是什么。然后你需要编写一个最小化的程序(系统托盘?!),并观察消息系统中弹出的某个识别窗口/类名。 Windows消息可以被拦截并挂钩。 http://www.codeproject.com/Articles/33459/Spying-Window-Messages-from-the-Inside可能会有所帮助。
一旦你得到你的窗口句柄。您可能需要找到选项卡控制组。并注入一个新的标签元素。您可以将任何您认为属于标签元素的帖子贴出来。

这是推测性的,并且假设您想要添加的所有新更改都会以新选项卡结束。

我希望这能以某种方式帮助你。

PS:答案并不完全是推测。对于我在工作场所的一些内部使用,我制作了一个原型,它可以做类似于Outlook的原型,并覆盖一些默认功能,这些功能并没有被Add in框架本身暴露。请注意,这将需要大量的测试,并且有些不可靠/不稳定

+0

我已经看到其他代码注入/挂钩到“taskmgr.exe”中。恶意软件显然会这样做,所以它可以将进程隐藏在进程列表中。我在这方面的唯一建议是,如果你有*注入代码/使用钩子,你确保你的代码经过了良好的测试和稳定。如果你的代码要在内部运行或影响另一个进程,它应该是一个“好公民”,可以这么说。 –

+0

正确地说。请记住,这必然会引发主机应用程序的稳定性问题。减少副作用的方法是注入一个可以转换为标准winForm/wpf控件的UIElement。然后与它一起工作。一定程度的间谍和信息监控应该引导你成为合适的人选。 –

+0

这个接缝似乎是最好的想法,我希望在新的任务管理器中他们会添加一些可扩展的功能,但显然我错了。如果明天我没有收到更好的答案,我会将你的答案标记为正确。向上投票顺便说一句,并感谢你 – trebor