Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 监视任何应用程序中的选择_.net_C++_Windows_Monitor_Textselection - Fatal编程技术网

.net 监视任何应用程序中的选择

.net 监视任何应用程序中的选择,.net,c++,windows,monitor,textselection,.net,C++,Windows,Monitor,Textselection,我想监控用户在任何应用程序中所做的所有文本选择。可能吗?我更喜欢.NET中的一个解决方案,但是香草C++是可以的。 如果没有,我是否可以监视.net应用程序中的所有文本复制操作CTRL+C 类似的问题:在隐藏窗口中注册和处理消息。在隐藏窗口中注册和处理消息。选择不是一个通用概念,每个控件都可以用自己的方式处理它。如果要拦截每个选择,可以在windows消息上放置一个全局钩子,并拦截与已知编辑控件(标准编辑控件、RichEdit控件等)相关的通知。。。,通过过滤掉那些看起来不错的,并检查源窗口类,

我想监控用户在任何应用程序中所做的所有文本选择。可能吗?我更喜欢.NET中的一个解决方案,但是香草C++是可以的。 如果没有,我是否可以监视.net应用程序中的所有文本复制操作CTRL+C


类似的问题:

在隐藏窗口中注册和处理消息。

在隐藏窗口中注册和处理消息。

选择不是一个通用概念,每个控件都可以用自己的方式处理它。如果要拦截每个选择,可以在windows消息上放置一个全局钩子,并拦截与已知编辑控件(标准编辑控件、RichEdit控件等)相关的通知。。。,通过过滤掉那些看起来不错的,并检查源窗口类,编辑框的选择更改可能是对其他控件的核战争开始的通知。您不会获得所有选择,例如Word中的选择不会被截获,但您可能会认为获得了绝大多数选择

但是有一个大问题:没有窗口的控件。正如术语本身所说,无窗口控件不是窗口,因此它们没有HWND或其他东西;实际上,它们可以被认为是在屏幕上绘制的像素,没有任何来自应用程序外部的额外接口,它们通常是COM的东西。您不能钩住它们,也不能对它们进行子类化,而且由于它们通常使用COM接口通知它们的所有者,因此您不能对它们的所有者进行子类化以获取它们的通知。当然,可能有一些奇怪的方法来获取它们的内容,但它可能在每个过程中都涉及到dll注入,甚至没有为普通编辑框提出的方法那么通用

由于无窗口控件是使用DirectUI的非常广泛的浏览器和应用程序,例如,使用它们来避免浪费大量的HWND,IIRC Office也使用它们,WPF应用程序使用它们自己风格的无窗口控件,VB6/Delphi应用程序可以使用它们,…,您将错过很多选择,因此,我建议您遵循复制拦截方式,这更简单、更安全

在这方面,您可以按照@Richard的建议使用API。请记住,这仅适用于Windows Vista以后的版本,因此,如果要与以前的Windows版本兼容,应使用较旧的剪贴板查看器API集。一些信息

编辑

呃,我忘了,我在调查主动可访问性是否可以帮助你完成这项任务,确实有,但结果表明,它只适用于选定的子对象,而且一般来说

注意:客户端活动辅助功能不公开编辑和富编辑控件中的文本选择。
所以,我认为,如果连可访问性都不能提供这样的信息,那么很难找到其他标准化的方法来获取它。

选择并不是一个通用的概念,每个控件都可以用自己的方式处理它。如果要拦截每个选择,可以在windows消息上放置一个全局钩子,并拦截与已知编辑控件(标准编辑控件、RichEdit控件等)相关的通知。。。,通过过滤掉那些看起来不错的,并检查源窗口类,编辑框的选择更改可能是对其他控件的核战争开始的通知。您不会获得所有选择,例如Word中的选择不会被截获,但您可能会认为获得了绝大多数选择

但是有一个大问题:没有窗口的控件。正如术语本身所说,无窗口控件不是窗口,因此它们没有HWND或其他东西;实际上,它们可以被认为是在屏幕上绘制的像素,没有任何来自应用程序外部的额外接口,它们通常是COM的东西。您不能钩住它们,也不能对它们进行子类化,而且由于它们通常使用COM接口通知它们的所有者,因此您不能对它们的所有者进行子类化以获取它们的通知。当然,可能有一些奇怪的方法来获取它们的内容,但它可能在每个过程中都涉及到dll注入,甚至没有为普通编辑框提出的方法那么通用

由于无窗口控件是使用DirectUI的非常广泛的浏览器和应用程序,例如,使用它们来避免浪费大量的HWND,IIRC Office也使用它们,WPF应用程序使用它们自己风格的无窗口控件,VB6/Delphi应用程序可以使用它们,…,您将错过很多选择,因此,我建议您遵循复制拦截方式,这更简单、更安全

在这方面,您可以按照@Richard的建议使用API。请记住,这仅适用于Windows Vista以后的版本,因此,如果要与以前的Windows版本兼容,应使用较旧的剪贴板查看器API集。一些信息

编辑

呃,我忘了,我在调查是否活跃 可访问性虽然可以帮助您完成这项任务,但事实证明,它只适用于选定的子对象,而且通常

注意:客户端活动辅助功能不公开编辑和富编辑控件中的文本选择。
所以,我认为,如果连可访问性都不能提供这样的信息,那么很难找到其他标准化的方法来获取这些信息。

这是为了复制,对吗?是否为所有应用程序触发了该消息而不仅仅是我自己的应用程序?它为所有应用程序触发。请参见此处:@jgauffin:链接的MSDN页面告诉您如何将窗口添加到接收该消息的应用程序。确定。我会等一天,看看是否有人知道如何监控选择。否则我会接受你的回答。那是复印件,对吗?是否为所有应用程序触发了该消息而不仅仅是我自己的应用程序?它为所有应用程序触发。请参见此处:@jgauffin:链接的MSDN页面告诉您如何将窗口添加到接收该消息的应用程序。确定。我会等一天,看看是否有人知道如何监控选择。否则我会接受你的回答。