Làm cách nào để sử dụng C# hoặc C++, chèn văn bản vào hộp văn bản của một ứng dụng khác? Tôi đã làm điều này một thời gian dài trước đây và dường như nhớ một cái gì đó về việc sử dụng các ứng dụng HWND. Nhưng kể từ khi thay đổi đó cho mọi trường hợp của ứng dụng tôi cảm thấy rằng tôi sẽ không nhớ câu chuyện hoàn chỉnh. Tôi bằng cách nào đó có được một danh sách các ứng dụng đang chạy, trích xuất một trong những tôi muốn, có được HWND từ đó và sau đó ... hmm .... sau đó những gì? :)Chèn văn bản vào hộp văn bản của ứng dụng khác
Trả lời
Sử dụng FindWindowEx() để tìm ra xử lý (HWND) và sau đó gửi tin nhắn WM_SETTEXT sử dụng SendMessage()
Khi sử dụng FindWindowEx, trước tiên bạn sẽ cần tìm cửa sổ chính xử lý bằng cách sử dụng tên lớp của nó. Sau đó, bạn sẽ cần phải tìm thấy các xử lý của bất cứ thùng chứa các hộp văn bản là trong, gọi FindWindowEx, đi qua xử lý của phụ huynh (cửa sổ), và tên lớp của container. Bạn sẽ cần phải lặp lại điều này cho đến khi bạn đến hộp văn bản. Bạn có thể sử dụng công cụ được gọi là Spy++ được cài đặt theo mặc định với Visual Studio để kiểm tra ứng dụng đích và tìm ra thứ bậc của vùng chứa (tất cả các đối tượng thực sự được gọi là cửa sổ trong API nhưng tôi gọi chúng là cửa sổ cấp) với tên lớp của họ.
Sau đó SendMessage(), WM_SETTEXT
bạn có thể sử dụng lớp Clipboard để đạt được cùng
nhưng điều này sẽ liên quan đến người sử dụng xử lý thay vì thực thi mã – RvdK
Thay vì nhắm mục tiêu một ứng dụng cụ thể, bạn chỉ có thể gửi tổ hợp phím đến trường văn bản.
private void button1_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(5000);
SendKeys.Send(send_text);
private void textBox1_TextChanged(object sender, EventArgs e)
{
send_text = textBox1.Text;
}
Vui lòng thêm một số giải thích – CodeWarrior
- 1. Chèn hộp văn bản
- 2. Chèn các tab vào một hộp văn bản
- 3. Chèn văn bản vào nền của ô
- 4. Xóa văn bản sau khi nhấp vào hộp văn bản
- 5. Chèn văn bản vào hộp văn bản WPF ở vị trí dấu mũ
- 6. Python Tkinter - Cách chèn văn bản vào đầu hộp văn bản?
- 7. Sao chép nội dung của một hộp văn bản sang một hộp văn bản khác
- 8. Chèn văn bản UITextView vào văn bản dạng xem văn bản
- 9. tinymce.selection.setContent chèn văn bản vào đầu của vùng văn bản trong IE
- 10. chèn văn bản tùy chỉnh vào ggplot2
- 11. Phông chữ mặc định cho Hộp văn bản nhiều dòng khác với Hộp văn bản đơn?
- 12. chiều cao đầu vào hộp văn bản
- 13. tập trung vào hộp văn bản
- 14. Cách dán văn bản vào con trỏ hiện tại của hộp văn bản?
- 15. Ghi đè dán vào hộp văn bản
- 16. Cách chèn Biểu tượng (Bảng Anh, Euro, Bản quyền) vào Hộp văn bản
- 17. Hộp văn bản HTML, văn bản tô sáng tự động
- 18. WPF: Lấy văn bản "gói" ra khỏi hộp văn bản
- 19. plugin jquery chèn văn bản vào hộp văn bản là gì và nó biến mất khi tập trung?
- 20. văn bản nhiều dòng văn bản trong hộp giới hạn
- 21. Thêm văn bản vào vùng văn bản sử dụng javascript
- 22. Bỏ chọn văn bản trong hộp văn bản
- 23. Hộp văn bản Winform không thể hiển thị văn bản
- 24. C#: Gắn thêm * nội dung * của một tệp văn bản vào một tệp văn bản khác
- 25. JQuery tập trung vào hộp văn bản đầu tiên hoặc văn bản khi trang tải
- 26. C# - Đọc trong một tệp văn bản lớn (150MB) vào Hộp văn bản có dạng thức
- 27. Di chuyển trọng tâm từ một hộp văn bản Chỉnh sửa sang một hộp văn bản Chỉnh sửa khác
- 28. Khóa chiều rộng của hộp văn bản
- 29. C# - cách đặt văn bản trong hộp văn bản để hiển thị gợi ý khi hộp văn bản trống?
- 30. Chèn văn bản vào con trỏ trong vùng văn bản, với Javascript
Ngoài ra, bạn có thể cần thêm một cuộc gọi đến InvalidateRect như SendMessage sẽ thay đổi nó và tôi sẽ nhìn thấy giá trị trong Winspector nhưng giá trị về hình thức của tôi vẫn không thay đổi , vì vậy InvalidateRect sẽ gây ra các repaint –
Điều gì xảy ra nếu, ứng dụng có chứa nhiều hơn một hộp văn bản và tôi muốn đọc dữ liệu từ một hộp văn bản cụ thể. Có cách nào để phân biệt xử lý các hộp văn bản không? – MK446