Tôi phải viết bàn phím ảo cho chương trình của công ty chúng tôi, phần lớn được sử dụng trên máy tính của ngành có khả năng cảm ứng.Cách viết bàn phím ảo trên màn hình
Chúng tôi không thể sử dụng bàn phím mặc định của cửa sổ vì chúng tôi không cần tất cả các phím trên bàn phím. Vì vậy, tôi đã được yêu cầu viết một tùy chỉnh trong C#.
Tôi đã tìm thấy this blog làm tham chiếu, nhưng tôi không chắc chắn cách bắt đầu.
Tôi đã tạo một giao diện mẫu thử nghiệm nhỏ và gán cho mỗi khóa một scancode và dịch các scancode này thành ký tự liên quan. Và gửi chúng đến kiểm soát hoạt động. Nhưng tôi không chắc chắn những gì scancodes tôi nên sử dụng.
Vì vậy, câu hỏi của tôi là, đó là cách chính xác để viết một OSK như thế này và nếu có scancodes tôi nên sử dụng? Bất kỳ liên kết nào?
Tôi cũng không chắc chắn làm thế nào để xử lý sự thay đổi bang ...
Edit:
Được rồi tôi đã nghiên cứu nhiều hơn một chút và đã đưa ra một osk mà đọc hiện nay bố cục bàn phím và thậm chí xử lý dễ dàng các thay đổi trạng thái (Shift và Alt Gr). Tôi đã viết một lớp KeyButton
kế thừa từ Button
, điều này KeyButton
có thuộc tính ScanCode
loại byte và nếu bạn gán một mã vạch hợp lệ cho nó, thì KeyButton
sẽ gọi các hàm liên quan để nhận văn bản chính xác. Tôi đã sử dụng các chức năng từ blog của Michael Kaplan với một số thay đổi nhỏ. Cuối cùng hóa ra tôi chỉ phải làm như anh ấy đã làm.
Vì vậy, câu trả lời cho câu hỏi của tôi là: Có, bạn phải sử dụng scancode trên các nút của bạn và sau đó nhận được virtualkey và unicode từ bố trí bàn phím. Use these scancodes.
Bây giờ tôi có được những nhân vật duy nhất còn lại là gửi những thứ này.
là OSK này cho sử dụng chung hoặc cụ thể cho một phần mềm cụ thể? (Tức là bạn sẽ cấp mã quét cho các sự kiện cửa sổ xe buýt hoặc gửi mã số char để một ứng dụng winforms?) Sự khác biệt là rất lớn. –
Đối với phần mềm của chúng tôi, vì vậy tôi muốn gửi mã char vào một hộp văn bản. Nhưng tôi muốn sử dụng bố trí bàn phím như osk mặc định trong cửa sổ. – MBulli
Còn khóa chết thì sao? – Joey