Tôi muốn di chuyển theo chương trình và nhấp chuột bằng cách sử dụng API cửa sổ trong C. Tôi đã tìm kiếm google cao và thấp và không thể tìm thấy bất kỳ hướng dẫn sendInput cho đồng bằng C. Tất cả tôi có thể tìm thấy là C#/C++. Tôi có ít kinh nghiệm với API cửa sổ và rất thích một hướng dẫn tuyệt vời sẽ bao gồm sendInput! Cảm ơn!sử dụng chuột với sendInput trong C
Trả lời
Hans Passant phù hợp với mã C++ gần như giống hệt nhau. Đây là những gì tôi đã kết thúc với:
INPUT input;
input.type = INPUT_MOUSE;
input.mi.mouseData = 0;
input.mi.dx = x * (65536/GetSystemMetrics(SM_CXSCREEN)); //x being coord in pixels
input.mi.dy = y * (65536/GetSystemMetrics(SM_CYSCREEN)); //y being coord in pixels
input.mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE;
SendInput(1, &input, sizeof(input));
Một điều rất quan trọng cần lưu ý là bạn phải ép 65536 đến một phao nếu không, chuyển đổi kích thước màn hình của bạn sẽ bị tắt bởi một vài pixel. 65536.0f để có độ chính xác cao hơn. –
@ Error454 Bạn có biết tại sao dx và dy phải có định dạng lạ cho chuyển động tuyệt đối không? Di chuyển tương đối mặt khác cần dx và dy là số điểm ảnh thuần túy. – Bitterblue
@ mini-me Chỉ là cách mà msft quyết định làm mọi thứ. Hệ tọa độ của chúng là (0,0) ở trên cùng bên trái và (65535,65535) ở góc dưới cùng bên phải. –
- 1. SendInput() Chữ cái bàn phím C/C++
- 2. SendInput không thực hiện nút chuột nhấp chuột trừ khi tôi di chuyển con trỏ
- 3. Màn hình chuyển sang màu đen khi tôi sử dụng SendInput để gửi các vị trí con trỏ chuột
- 4. SendInput và 64bits
- 5. jQuery - Sử dụng .one() với di chuột
- 6. Mô phỏng Bàn phím với API SendInput trong các ứng dụng DirectInput
- 7. Sử dụng con lăn chuột trong GLUT
- 8. SendInput không thành công trên 64bit
- 9. Sử dụng Directory.GetFiles với regex trong C#?
- 10. Cách sử dụng cuộn bàn di chuột trong .Net
- 11. Sử dụng C++ với Eclipse
- 12. Gửi các khóa thông qua SendInput trong user32.dll
- 13. Sử dụng OpenGl với C#?
- 14. Sử dụng Tk với C
- 15. SendInput() cho bàn phím - chỉ chữ thường
- 16. Sử dụng :: trong C++
- 17. Sử dụng lại các bước Dưa chuột
- 18. Có thể sử dụng vim bằng chuột
- 19. Sử dụng C++ trong mục tiêu C++?
- 20. sử dụng #define trong C/C++
- 21. Sử dụng C Struct trong Objective C
- 22. sử dụng scanf trong C/C++
- 23. Sử dụng C++ với Android ndk/jni
- 24. Sử dụng C# Count() với hàm
- 25. Connecting C++ với QML sử dụng Q_INVOKABLE
- 26. sử dụng chức năng C trong C#
- 27. Python và Matplotlib và Chú thích với Chuột Di chuột
- 28. Sử dụng 'hành is` với Generics trong C#
- 29. Sử dụng các mẫu trong excel với C#
- 30. Sử dụng HashSet trong C# 2.0, tương thích với 3.5
Phiên bản C++ sẽ phù hợp, điều này không khác với Winapi dựa trên C. –
Bạn nên để điều đó như một câu trả lời để tôi có thể đánh dấu bạn là chính xác! : p –
bạn chỉ có thể chấp nhận câu trả lời của bạn, tôi không nghĩ rằng Hans cần đại diện! –