Visual c++ 系统范围的右键单击上下文挂钩

Visual c++ 系统范围的右键单击上下文挂钩,visual-c++,hook,systems-programming,Visual C++,Hook,Systems Programming,**你好 我正在创建英语古吉拉特语词典WinForm应用程序 我需要在右键单击上下文菜单上设置一个系统范围的钩子来选择文本 这意味着当这个应用程序运行时,若用户从任何程序中选择word并右键单击它,那个么这个单词的古吉拉特语含义应该显示为菜单项 如何做到这一点 或任何其他选项,如注册表编程、shell扩展等 我必须这样做,即使你说这是不可能的 所以请帮帮我。**勾住鼠标活动是最简单的部分。看到了吗,还有很多关于这么做的问题。这样,您就可以知道鼠标何时右键单击 获取所选文本是比较困难的部分。首先,

**你好

我正在创建英语古吉拉特语词典WinForm应用程序

我需要在右键单击上下文菜单上设置一个系统范围的钩子来选择文本

这意味着当这个应用程序运行时,若用户从任何程序中选择word并右键单击它,那个么这个单词的古吉拉特语含义应该显示为菜单项

如何做到这一点

或任何其他选项,如注册表编程、shell扩展等

我必须这样做,即使你说这是不可能的


所以请帮帮我。**

勾住鼠标活动是最简单的部分。看到了吗,还有很多关于这么做的问题。这样,您就可以知道鼠标何时右键单击

获取所选文本是比较困难的部分。首先,请看。您必须识别控件,如果合适,从中获取所选文本。如果控件很复杂,那么使用简单的Win32函数并不总是可以做到这一点

将翻译添加到右键单击菜单可能是不可能的。向资源管理器上下文菜单添加内容不是问题,因为资源管理器提供了这种可能性。但各种应用程序都会有各种右键单击菜单,无法扩展它们。无论出于何种原因,他们甚至可能不使用Win32作为菜单。海事组织,一个更好的选择是下列之一:

  • 忘记更改右键单击菜单。在选择点旁边打开一个包含您想要的任何内容的窗口,让应用程序显示自己的右键单击菜单
  • 如果用户在按住shift键的同时单击鼠标右键,则会显示自己的右键单击菜单,并且不会将消息传递给应用程序。因此,用户将只看到一个菜单,即您的菜单。用户当然必须知道这种组合

  • 钩住鼠标活动是最简单的部分。看到了吗,还有很多关于这么做的问题。这样,您就可以知道鼠标何时右键单击

    获取所选文本是比较困难的部分。首先,请看。您必须识别控件,如果合适,从中获取所选文本。如果控件很复杂,那么使用简单的Win32函数并不总是可以做到这一点

    将翻译添加到右键单击菜单可能是不可能的。向资源管理器上下文菜单添加内容不是问题,因为资源管理器提供了这种可能性。但各种应用程序都会有各种右键单击菜单,无法扩展它们。无论出于何种原因,他们甚至可能不使用Win32作为菜单。海事组织,一个更好的选择是下列之一:

  • 忘记更改右键单击菜单。在选择点旁边打开一个包含您想要的任何内容的窗口,让应用程序显示自己的右键单击菜单
  • 如果用户在按住shift键的同时单击鼠标右键,则会显示自己的右键单击菜单,并且不会将消息传递给应用程序。因此,用户将只看到一个菜单,即您的菜单。用户当然必须知道这种组合

  • 是否可以通过EXE注入添加上下文菜单?@aarti,当您的代码挂接另一个进程时,它正在该进程的地址空间内运行。基本上,你可以做任何你想做的事情,就好像你的代码是你挂接的可执行文件的一部分。然而,要做复杂的事情,您必须非常熟悉所挂接的应用程序,这是最大的问题。您可以对特定的应用程序进行逆向工程,并添加所有类型的添加,但对于一般情况,您需要一个通用的解决方案。您是否考虑了一个特定的应用程序,或者您正在寻找一个通用的解决方案?不,我没有特定的应用程序,我需要在用户打开的所有exe应用程序中使用此功能[词典]。因此,我需要在几乎所有的应用程序中显示menuitem。如记事本、winword、mozila、powerpoint、vb6、,visual studio等。是否可以通过EXE注入添加上下文菜单?@aarti,当您的代码挂接另一个进程时,它正在该进程的地址空间内运行。基本上,你可以做任何你想做的事情,就好像你的代码是你挂接的可执行文件的一部分。然而,要做复杂的事情,您必须非常熟悉所挂接的应用程序,这是最大的问题。您可以对特定的应用程序进行逆向工程,并添加所有类型的添加,但对于一般情况,您需要一个通用的解决方案。您是否考虑了一个特定的应用程序,或者您正在寻找一个通用的解决方案?不,我没有特定的应用程序,我需要在用户打开的所有exe应用程序中使用此功能[词典]。因此,我需要在几乎所有的应用程序中显示menuitem。如记事本、winword、mozila、powerpoint、vb6、visual studio等。