我认为这就是所谓的:
我希望能够将类似的东西添加到我的程序中。例如打开按钮和其他按钮在应用程序中执行方法。顺便说一下,这是在C#中。
我DID查看Windows 7 API代码包,但它...不能按我想要的方式运行。它不会让我像我想要的那样在我的应用程序中执行一个方法。它只是让你打开其他应用程序。
这样的事情可能吗?
答案 0 :(得分:4)
我认为你不了解JumpLists的工作方式。 “它只是让你打开其他应用程序”正是它的作用,没有别的。这是Windows 7的功能,而不是API Code Pack限制。关键是这个事实,你的应用程序没有运行,所以它应该在哪里执行你的方法? 正确的实现是使您的JumpList使用正确的参数运行您的应用程序然后在您的应用程序内部Main方法根据这些参数调用不同的方法。 别忘了,即使是窗口应用程序也有输入参数,就像控制台应用程序一样。
答案 1 :(得分:1)
如果您查看Outlook和Messenger,他们会在应用程序中调用其他命令,因此您知道这是可能的。但正如@Euphoric所说,跳转列表的架构非常简单 - 选择目的地(例如文件名或URL)会导致Windows启动应用程序的另一个实例并将该目标作为命令行参数传递。选择任务会导致Windows启动该任务,该任务需要是其他一些exe。
如何解决这个看似矛盾的问题?另一个exe是一个与主应用程序通信的帮助程序exe。这方面的例子供不应求,但我正在为11月初的演讲做一个演示,并在我完成它的时候将博客。也许这个架构指针可以帮助你入门。
答案 2 :(得分:0)
将URL分配给跳转列表项,并使用HTTP侦听器在应用程序上调用方法。像这样URL mapping with C# HttpListener
此外,您可以使用awekward路径并使用共享互斥锁使应用程序仅为单实例,并在命名管道中转发命令行参数。但http监听器更好;)