我很想知道如何执行下面列出的应用程序相同的操作: 启动菜单计算器
我想知道如何在"开始菜单搜索"中创建自定义选项卡,然后使用我的WPF应用程序处理它.它应该只在我的应用程序运行之前启用.(就像计算器所做的那样)
我读了一些关于Windows API Code Pack的东西,我下载了它,但我不知道如何使用它.我搜遍了它,但我没有找到任何东西.(如果你知道如何使用Windows API Code Pack,请写一个例子来解释如何在C#中做到这一点)
主 exe“开始菜单 Calculator.exe”将 Windows 挂钩(使用SetWindowsHookEx)安装到 explorer.exe 中。该钩子像往常一样在 SBLib.dll 中实现,然后将其注入到 Windows 资源管理器的内存空间中。
该挂钩搜索属于搜索框的窗口句柄。请参阅此处有关此问题的讨论: How do I get a “handle” on the Windows Search textbox? 并且可能对搜索框窗口进行子类化(如果您突然终止“开始菜单 Calculator.exe”进程,它也会使 Windows 资源管理器崩溃......这有点证实了这一点)
然后它会对按键做出反应,我想它会破坏结果窗口。在Windows的层次结构中,我认为它是一个名为“桌面搜索打开视图”的窗口,除了上面msdn论坛中提到的窗口之外,您可以在“开始菜单”下使用SPY++访问它。
所以,这个漂亮的应用程序背后没有漂亮的 API。相反,是大规模的黑客攻击:-)
然而,我认为,使用记录的行为与搜索框进行某种程度的集成是可能的。我没有进一步挖掘,但 Windows 中有联合搜索的概念(Windows 7 联合搜索)。我不知道这是否能够立即对用户输入的内容做出反应......
顺便说一句,如果您也在寻找一种从 C# 运行 javascript 代码的方法,那么这里有一个问题说明了一切:通过 C# 解析和执行 JS