回答
不要認爲這是可能的,windows API調用不會讓你深入挖掘到另一個應用程序。我擁有的一個想法是強制執行屏幕截圖,然後在生成的圖像上使用OCR,但是在被黑客入侵的解決方案計量器中這個排名很高。有沒有你想要完成的東西,如確定一個特定的過程完成?
您必須獲取託管文本框的應用程序的窗口句柄,然後獲取要從中獲取文本的實際控件的句柄。然後,您可以發送WM_GETTEXT消息到該控件以讀取該控件的值。您需要使用某個窗口間諜應用程序來獲取託管在窗口中的控件的詳細信息,例如AutoIt窗口信息工具。
我能找到一個關於Expert Exchange的例子,詳細說明如何執行上面的讀取記事本中編輯控件的細節:http://www.experts-exchange.com/Programming/Languages/.NET/Visual_CSharp/Q_23748618.html(滾動到底部尋找答案)。
private const int WM_GETTEXTLENGTH = 0x000E;
private const int WM_GETTEXT = 0x000D;
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, StringBuilder lParam);
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
IntPtr notepad = FindWindow("notepad", null);
IntPtr editx = FindWindowEx(notepad, IntPtr.Zero, "edit", null);
int length = SendMessage(editx, WM_GETTEXTLENGTH, 0, 0);
StringBuilder text = new StringBuilder(length);
int hr = SendMessage(editx, WM_GETTEXT, length, text);
Console.WriteLine(text);
僅供參考,如果您是通過谷歌提交的,專家交換隻會列出所有答案,因此您的鏈接不起作用。 – 2010-12-15 00:21:49
謝謝Mystere Man我不知道。搜索谷歌[網站:experts-exchange.com如何從一個Windows控件使用C#]文本],並應該讓你到那裏。 – 2010-12-15 00:26:47
謝謝,這對我工作! – 2010-12-15 14:13:29
這是一個長鏡頭,但我記得叫「HawkEye」那你能只要代碼沒有被混淆或像這樣深入到一個.NET應用程序的控制樹的應用程序。代碼似乎已經開放源代碼,所以你永遠不知道你會發現哪裏有用/無用。
- 1. 如何從窗口中獲取文本?
- 2. 從彈出窗口中獲取文本
- 3. c#窗口中的文本框形式
- 4. 使用C++從活動窗口中獲取選定的文本
- 5. Python - 從窗口獲取文本
- 6. 如何從窗口獲取文本
- 7. 使用Jquery在新窗口中獲取文本框的值
- 8. 如何從文本框中的文本中獲取文件名
- 9. 窗口從文本
- 10. 獲取C#中的組合框文本#
- 11. 從文件上傳窗口讀取文件名到文本框
- 12. 從文本框獲取索引C#
- 13. 從文本框(C#)獲取價值
- 14. 從php中獲取文本框的值
- 15. 從活動窗口中獲取突出顯示的文本
- 16. 如何從具有特定HWND的窗口中獲取文本?
- 17. 如何從窗體中的文本框中獲取字符串
- 18. C#WPF - 如何總是從文本框中獲取當前文本?
- 19. 如何獲取文本框的文本?
- 20. 即時獲取{{}}而不是獲取C#中的文本框的值
- 21. 在gridview行文本框中獲取模態彈出窗口值
- 22. 從Windows窗體上的文本框中獲取數據
- 23. 嘗試從C#中的文本框中獲取文本值時發生錯誤
- 24. 如何從文本旁邊的文本框中獲取值
- 25. 獲取從文本框中的文本在Form1上
- 26. 從asp裏面的文本框中獲取文本:FormView
- 27. 在Javascript中獲取文本框文本
- 28. jQuery的:在對話框窗口中的文本框不工作
- 29. C#我如何從數據庫中獲取數據,文本框
- 30. 從串口規模獲取文本框中的所需輸出
使用System.OtherApplications.CaptureTextBox!那是不可能的人,更多地解釋你爲什麼要這麼做? – 2010-12-14 23:41:59