我有一个项目需要从Web浏览器(chrome,firefox等)捕获突出显示的文本。在我的项目中,用户突出显示文本,例如来自Web浏览器的单词。该程序将该单词翻译为使用谷歌翻译前选择的语言。我已经设法从记事本等一些应用程序中捕获突出显示的文本,但我特别需要使用Web浏览器。
有人可以帮我吗?我搜索了所有文件并尝试了所有方法,但我无法达到目标。该项目是为了我的大学毕业。
我非常感谢这里的一些帮助。 谢谢!
答案 0 :(得分:0)
把它放在班上:
[DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo);
然后是一种接收文字的方法。
static uint KEYEVENTF_KEYUP = 2;
static byte VK_CONTROL = 0x11;
public static string gettext()
{
string message;
try
{
Thread.Sleep(100);
message=Clipboard.GetText();
return message;
}
catch(Exception)
{
gettext();
}
}
public static string highlightedtext()
{
string output;
keybd_event(VK_CONTROL,0,0,0);
keybd_event (0x43, 0, 0, 0 );
keybd_event (0x43, 0, KEYEVENTF_KEYUP, 0);
keybd_event (VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
output=gettext();
return output;
}
注意:有时剪贴板正在使用中,并且会给出异常,因此您需要尝试并捕获,如果它捕获异常,请再次执行,直到它没有。
使用这些代码的好处:
1.如果您只想在剪贴板中输入内容,请调用gettext()
2对于突出显示的文本,请调用highlightedtext()
任何人都会看到错误,请编辑我的帖子。
谢谢
编辑!!:添加静态用于main()。如果您不使用main,请删除静态
Edit2 !!:为所有外部变量添加静态!!请告诉我更多错误。