Winforms 是否可以构建WinForm应用程序(或其他类型的.NET应用程序),使我能够与应用程序本身之外的其他窗口进行交互?

Winforms 是否可以构建WinForm应用程序(或其他类型的.NET应用程序),使我能够与应用程序本身之外的其他窗口进行交互?,winforms,tooltip,mouseover,Winforms,Tooltip,Mouseover,我现在正在学习汉语,我已经掌握了一本汉语词典的定义 现在我想做一个界面 我真正想让应用程序做的是,当我将鼠标指针指向屏幕上的任何文本(在任何窗口中)时,它将识别我指向的文本,然后在上面显示一个小表单,这将是中文事务 这可能吗?WinForms应用程序能否在自己的应用程序之外与windows交互?在C语言中,您可以通过p/调用来获取鼠标光标下的文本 GetCursorPos GetClassName 发送消息 WM_GETTEXT WM_GETTEXTLENGTH WindowFromPoi

我现在正在学习汉语,我已经掌握了一本汉语词典的定义

现在我想做一个界面

我真正想让应用程序做的是,当我将鼠标指针指向屏幕上的任何文本(在任何窗口中)时,它将识别我指向的文本,然后在上面显示一个小表单,这将是中文事务

这可能吗?WinForms应用程序能否在自己的应用程序之外与windows交互?

在C语言中,您可以通过p/调用来获取鼠标光标下的文本

  • GetCursorPos
  • GetClassName
  • 发送消息

    • WM_GETTEXT
    • WM_GETTEXTLENGTH
  • WindowFromPoint

如前所述


是C++

中的另一个示例,WinForms应用程序可以与其他应用程序的窗口交互。窗口句柄存在于全局命名空间中,因此,如果可以获取另一个应用程序窗口的句柄,则可以向它发送消息。你将不得不使用pinvoke来做一些这样的事情,看看

但是,没有标准化的方式在窗口中显示文本;有几十种用于显示文本的API。因此,当你用鼠标指向文本时,你只能得到像素,但不一定是文本


某些窗口类允许您发送特定于类的消息,以查询特定位置的文本,但许多窗口类不允许。最好的办法可能是使用盲人屏幕阅读器使用的相同方法

一种更简单的方法可能是在另一个窗口中选择(突出显示)文本,并让应用程序使用剪贴板对象复制文本,然后进行翻译。