使用c#从Web浏览器捕获突出显示的文本

时间:2014-04-22 01:58:00

标签: c# text browser web capture

我有一个项目需要从Web浏览器(chrome,firefox等)捕获突出显示的文本。在我的项目中,用户突出显示文本,例如来自Web浏览器的单词。该程序将该单词翻译为使用谷歌翻译前选择的语言。我已经设法从记事本等一些应用程序中捕获突出显示的文本,但我特别需要使用Web浏览器。

有人可以帮我吗?我搜索了所有文件并尝试了所有方法,但我无法达到目标。该项目是为了我的大学毕业。

我非常感谢这里的一些帮助。 谢谢!

1 个答案:

答案 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 !!:为所有外部变量添加静态!!请告诉我更多错误。