我会做一个像谷歌工具栏翻译功能的工具,但它是用于桌面的。我想要做的是在任何应用程序(word、pdf、live messenger 等)中突出显示文本,并通过 google translate api 进行翻译,作为工具提示返回。
我搜索了关于监控文本的 msdn,我只发现使用复制和粘贴和监控剪贴板来勾选事件。
那么,对此有什么想法吗?感谢您。
一个起点是获取对当前前景窗口的引用。下面的代码将获取当前选择的窗口和该窗口的标题:
[ 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 秒钟的时间来选择一个窗口。
我不确定您将如何在窗口中检索选定的文本,但我会为您调查。