2009-05-15 42 views
5

Tôi đã được một người bạn hỏi câu hỏi này, và nó khơi gợi sự tò mò của tôi, và tôi đã không thể tìm ra giải pháp cho nó, vì vậy tôi hy vọng ai đó sẽ biết.Phát hiện loại bàn phím (Qwerty hoặc Dvorak)

Có cách nào để phát hiện chương trình loại bàn phím người dùng đang sử dụng không? Sự hiểu biết của tôi về bàn phím là tín hiệu được gửi đến máy tính cho 'A' trên bàn phím DVORAK giống như tín hiệu được gửi tới máy tính cho chữ 'A' trong bàn phím QUERTY. Tuy nhiên, tôi đã đọc về cách để switch to/from dvorak, làm nổi bật chỉnh sửa registry, nhưng tôi hy vọng có một thiết lập máy hoặc một số điều khác mà tôi có thể truy vấn.

Bất kỳ ý tưởng nào?

+0

Ra khỏi tò mò, là có một lý do tại sao bạn muốn biết? Tôi không thể nghĩ về một người khác hơn là một số liệu thống kê ngẫu nhiên. –

+1

@Nathan: Tôi không phải là người hỏi, nhưng đối với một trò chơi, bạn có thể lập bản đồ WASD cho các phím di chuyển. Hoạt động tốt trong QWERTY, không tuyệt vời như vậy ở Dvorak. – Powerlord

+1

Tôi đang tìm cách viết một chương trình cho máy tính bảng và hiển thị bàn phím ảo để nhập nhanh để mọi người không phải mở hộp. Tôi đang cố gắng để phù hợp với bàn phím để máy tính, và bạn tôi lưu ý rằng tôi có thể phải xem xét DVORAK vs QWERTY. Cảm ơn vì những lời nhận xét. –

Trả lời

3

Bạn có thể thực hiện việc này bằng cách gọi phương thức Get32LayoutName() Win32 API. Bàn phím Dvorak có tên cụ thể. Ví dụ, cách bố trí của Hoa Kỳ Dvorak có một cái tên của đoạn 00010409.

Code:

public class Program 
    { 
    const int KL_NAMELENGTH = 9; 

    [DllImport("user32.dll")] 
    private static extern long GetKeyboardLayoutName(
      System.Text.StringBuilder pwszKLID); 

    static void Main(string[] args) 
    { 
     StringBuilder name = new StringBuilder(KL_NAMELENGTH); 

     GetKeyboardLayoutName(name); 

     Console.WriteLine(name); 

    } 
    } 
+0

Cảm ơn câu trả lời. Tôi nghĩ rằng tôi sẽ có thể xử lý bàn phím nước ngoài nếu tôi thậm chí còn bắt đầu nghĩ đến việc mở rộng quốc tế hóa ứng dụng của mình. –

1

Tại sao lại quan trọng? Tùy thuộc vào một số thực hiện đặc biệt của bàn phím là không có ý tưởng tốt cả. Chúng tôi sử dụng máy quét mã vạch trên khắp nơi mô phỏng đầu vào bàn phím. Chương trình của bạn sẽ làm gì với các thiết bị này? :)

PS: mục đăng ký được đề cập sắp xếp các phím của bàn phím thông thường thành bố cục dvorak.

+2

Làm thế nào bạn đạt được giả định rằng anh muốn phụ thuộc vào bố cục chính? Có vẻ như anh ấy muốn hỗ trợ các bố cục khóa thay thế. Xem câu trả lời của Aric vì nhiều lý do chính đáng tại sao một người nào đó sẽ làm điều này. – dss539

3

có thể phụ thuộc vào hệ điều hành. Tôi chắc chắn rằng có một thiết lập hệ điều hành ở đâu đó đăng ký quốc tịch của bàn phím. (Dvorak được coi là quốc tịch vì bàn phím tiếng Pháp khác với bàn phím tiếng Hoa khác với ...)

Ngoài ra, chỉ cần lưu ý: 'A' là một ví dụ không đúng, vì 'A' là cùng một khóa trong dvorak và qwerty ... B-)

+0

Vì vậy, không có phiên bản phụ thuộc ngôn ngữ của bàn phím dvorak? Chỉ cần tò mò .. – VVS

+0

Không phải là tôi biết. Câu hỏi thú vị mặc dù. –

3

Bạn có thể làm điều đó thông qua DirectInput hoặc bất kỳ tương đương DirectX hiện tại nào. Tôi gõ trên bàn phím Dvorak và khoảng 50% số trò chơi tôi mua phát hiện bàn phím của tôi và cấu hình lại keymappings mặc định để hỗ trợ nó (ví dụ: aoe thay vì wasd)

Và có, như Brian đã đề cập, ' A 'giống nhau trên cả hai bàn phím.

+1

Một nhận xét khác: Bàn phím trên Windows là khác biệt trên cơ sở từng quá trình. Bạn có thể có một cửa sổ được đặt thành QWERTY và một cửa sổ khác được đặt thành bàn phím tiếng Ả Rập - thực tế, trong mười ba năm đánh máy trên Dvorak, tôi vẫn chưa tìm cách thay đổi bố cục bàn phím trên toàn cầu. –

+0

Aric: CÓ! một thực tế là tôi thấy cực kỳ khó chịu! –

+0

Tôi thấy rằng thực tế đặc biệt hữu ích. Tôi làm hầu hết công việc chuyên sâu bàn phím thấp của mình (lướt net, chơi game) trên QWERTY trong khi tôi trò chuyện trên Dvorak. – CookieOfFortune

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