2011-11-21 34 views
6

Tôi đã chán, vì vậy tôi đã cố gắng để làm cho một chương trình viết một cái nhìn của vẻ không hài lòng (mặt ಠ_ಠ) khi nhấn ctrl + shift + L. Bây giờ mọi thứ đều hoạt động, ngoại trừ dấu gạch dưới có trong biểu tượng mặt cười, không được viết gì cả.Không thể gửi gạch dưới với Sendkeys trong C#?

Đây là những gì tôi sử dụng đầu tiên:

SendKeys.Send("ಠ_ಠ"); 

Tôi đã thử những điều khác nhau, giống như thêm {} ngoặc xung quanh gạch dưới, và tất nhiên tôi googled này quá.

Có cách nào để tôi có thể nhận được dấu gạch dưới để gửi không?

Xin cảm ơn trước.

+5

+1 để lập trình trong sự nhàm chán. Lý do chính đáng. – MPelletier

+0

Nó phải là một số mã hóa ký tự. 'ಠ' không phải là ASCII. – MPelletier

+0

Chữ 'được gửi rất tốt, đó là _ bị hỏng vì một số lý do: \ – JeremyG

Trả lời

1

Trộn các mã hóa khác nhau tạo ra kết quả lạ. là Unicode, _ là ASCII. Các ký tự độ dài khác nhau gây nhầm lẫn và bắt chước Visual Studio.

Hãy thử:

SendKeys.Send("\u0CA0_\u0CA0"); 

Hoặc:

SendKeys.Send("\u0CA0\u005F\u0CA0"); 
+3

Điều đó có nghĩa là ngay cả khi bạn có thể nhập "ಠ_ಠ", điều đó không được hiểu là "ಠ_ಠ", vì Visual Studio thấy: Unicode, sau đó mong đợi nhiều Unicode hơn và tìm thấy thứ gì đó không phải. Kết quả cuối cùng khiến bạn * cảm thấy * giống như đầu vào của bạn: ಠ_ಠ. – MPelletier

+2

Sai. Bất kỳ hệ thống mã hóa phong nha sẽ xử lý tốt. – SLaks

+0

@SLaks Tôi chưa bao giờ nói Unicode là tốt. :) Nhưng nghiêm túc, đó là một hạn chế về giải thích Unicode của VS. Bạn có đồng ý không? – MPelletier

0

Nếu bạn không sử dụng một bố trí bàn phím tiếng anh mà có gạch dưới là chìa khóa bạn có thể không chỉ cần gõ các ký tự ASCII nhưng phải viết nó như là một sự kết hợp của modifier và các phím ký tự.

Các vấn đề liên quan