2016-07-12 44 views
0

我有基於C#的winform應用程序註冊了一個熱鍵事件。如何從C中複製瀏覽器中的突出顯示的文本#

一旦獲得熱鍵事件,它將從當前對焦窗口中複製選定或突出顯示的數據。

將數據複製:

  1. 使用剪貼板

    使用SendKey.SendWait發送CTRL + C按鍵,並從剪貼板中獲取數據。

  2. 使用UI AutomationElement

    使用AutomationElement獲得焦點的窗口元素。並使用其TextPattern獲取選定的數據。

問題

  1. 上述解決方案適用於記事本,寫字板,MS Word中。
  2. 我不能從Browser,Pdf類應用程序中選擇數據。

回答

0

您是否檢查過IDataObject返回的所有DataFormats,以檢查返回的數據?

private void button2_Click(object sender, System.EventArgs e) { 
    // Declares an IDataObject to hold the data returned from the clipboard. 
    // Retrieves the data from the clipboard. 
    IDataObject iData = Clipboard.GetDataObject(); 

    // Determines whether the data is in a format you can use. 
    if(iData.GetDataPresent(DataFormats.Text)) { 
     // Yes it is, so display it in a text box. 
     textBox2.Text = (String)iData.GetData(DataFormats.Text); 
    } 
    else { 
     // No it is not. 
     textBox2.Text = "Could not retrieve data off the clipboard."; 
    } 
} 

在上面的代碼全面介紹在低於 https://msdn.microsoft.com/en-us/library/system.windows.forms.clipboard.getdataobject(v=vs.110).aspx

Link是所有22個DataFormats的列表可用,並且DataFormats.RTF(PDF),DataFormats.Unicode(PDF,瀏覽器)(僅文本)和DataFormats.HTML(瀏覽器)可能適合您。 https://msdn.microsoft.com/en-us/library/system.windows.forms.dataformats(v=vs.110).aspx

如何從剪貼板中檢索數據 https://msdn.microsoft.com/en-us/library/c2thcsx4(v=vs.110).aspx

相關問題