C#,检测 Windows 上的选定文本?

Che*_*ung 4 c# text

我会做一个像谷歌工具栏翻译功能的工具,但它是用于桌面的。我想要做的是在任何应用程序(word、pdf、live messenger 等)中突出显示文本,并通过 google translate api 进行翻译,作为工具提示返回。

我搜索了关于监控文本的 msdn,我只发现使用复制和粘贴和监控剪贴板来勾选事件。

那么,对此有什么想法吗?感谢您。

Mic*_*ker 5

一个起点是获取对当前前景窗口的引用。下面的代码将获取当前选择的窗口和该窗口的标题:

[ DllImport("user32.dll") ]

static extern int GetForegroundWindow();

[ DllImport("user32.dll") ]
static extern int GetWindowText(int hWnd, StringBuilder text, int count); 

private void GetActiveWindow()
{

const int nChars = 256;
int handle = 0;
StringBuilder Buff = new StringBuilder(nChars);

   handle = GetForegroundWindow();

   if ( GetWindowText(handle, Buff, nChars) > 0 )
   {
   this.captionWindowLabel.Text = Buff.ToString();
   this.IDWindowLabel.Text = handle.ToString();
   }

}
Run Code Online (Sandbox Code Playgroud)

您可以在计时器内运行此代码:即给用户 10 秒钟的时间来选择一个窗口。

我不确定您将如何在窗口中检索选定的文本,但我会为您调查。