2012-02-07 84 views
0

即時貼困在我的問題中,我調用了一個過程,現在我想要它的焦點元素。例如如何在C中獲取特定過程的焦點元素#

。我運行一個流程www.google.com,打開在谷歌鉻 現在可以說我想搜索「你好」這樣做的方式,據我所知是獲得鍵盤焦點元素,將成爲谷歌文本框.COM。所以如何做到這一點通過我的應用程序,即(獲得的鍍鉻工藝的鍵盤焦點內容) Process[] pr = Process.GetProcessesByName("chrome"); var target = pr[0];

+0

而不是網頁抓取,您可能會受益於使用HTTP POST請求到服務器,只是解決HTTP響應。 – vulkanino 2012-02-07 11:51:47

回答

1

你的問題是有點模糊,所以我會盡力給多個指針基於幾個不同的解釋:

1)如果你所指的過程總是一個網站,你應該跳過屏幕截圖技術,如提到的@vulkanino,並直接獲取網站的內容。如果您必須將網站解析爲真實的瀏覽器(而不是原始HTML本身),則可以使用屏幕抓取功能,但請記住,並非所有計算機都使用相同的瀏覽器。 2)如果你想從正在運行的進程中截取信息,你(不幸的是)沒有一個簡單的API,比如你期望的API,其中Process pr對象包含你可以遍歷的元素列表。這是因爲這個過程可能是用.NET/WinForms,.NET/WPF,C++/MFC或其他十幾種UI框架編寫的,它們的工作方式非常不同。

我會建議使用屏幕閱讀器輔助功能框架,例如Microsoft的UI自動化,它能夠從許多常見應用程序的UI中提取文本。該功能的存在有助於讀出應用程序界面以避免視線不清,但也可用於屏幕抓取。

相關問題