C# 消息c上的InteropServices触发器#

C# 消息c上的InteropServices触发器#,c#,winapi,popupmenu,interopservices,C#,Winapi,Popupmenu,Interopservices,长期读者,第一次在这里张贴海报:) 我目前正在尝试学习如何使用interops,我想知道是否可以通过某种方式设置一个程序(程序a),在另一个程序(程序B)的弹出菜单中添加一个附加选项 编辑:程序B不是我的程序I,因此我无法直接控制它。基本上,程序B是一个shelfware程序,我想为它添加额外的功能 我想要实现的是以下几点 用户启动程序A 用户启动程序B 用户右键单击一个对象,弹出菜单(在程序B中) 用户选择选项id 6(在程序B中) 程序A注意到了这一点 程序B显示另一个弹出菜单(在程序B中)

长期读者,第一次在这里张贴海报:)

我目前正在尝试学习如何使用interops,我想知道是否可以通过某种方式设置一个程序(程序a),在另一个程序(程序B)的弹出菜单中添加一个附加选项

编辑:程序B不是我的程序I,因此我无法直接控制它。基本上,程序B是一个shelfware程序,我想为它添加额外的功能

我想要实现的是以下几点

  • 用户启动程序A
  • 用户启动程序B
  • 用户右键单击一个对象,弹出菜单(在程序B中)
  • 用户选择选项id 6(在程序B中)
  • 程序A注意到了这一点
  • 程序B显示另一个弹出菜单(在程序B中)
  • 程序A在程序B内向该菜单添加另一个选项
  • 如果用户选择这个新选项,它将调用程序a中的函数

  • 这甚至可以通过互操作实现吗?

    问题还不清楚。互操作通常指COM互操作,这是从.NET调用COM组件的一种方式。可以对特定COM组件执行/调用的操作取决于它定义的接口。您是否在询问如何创建COM组件并使用C#与之交互?如果没有,你到底在问什么?在这个问题上,你所说的互操作是什么意思?它被称为,嗯,好吧,也许我误解了,互操作不是解决这个问题的方法。我想要实现的是向我没有直接访问权限的程序(没有公共API)添加额外的功能。我的印象是我可以在winAPI中的某些SendMessage调用上触发一个事件来操作菜单(例如查找WM_CONTEXTMENU调用或类似的东西),如果您对程序A和B使用相同的编程语言,那么您根本不需要互操作,如果您需要选择一种方式在两个程序之间进行通信,您可以从下面的列表中选择最合适的方式,如果您想从B更改A中的某个UI组件,那么您只需将程序集B作为依赖项添加到A中,并在每次您想在应用程序中显示项时调用其中一个方法control@Art程序B是用C或C++开发的,我可以说,这不是我的程序。我使用C ATM ATM,但是我也习惯C++。我无法直接访问程序B,因此无法直接调用其中的任何内容。经过更多的研究之后,我开始怀疑,为了实现我想要的,我需要向程序B中注入一个DLL。