2013-05-12 15 views
6

Một số thời gian hiện tại tôi đang sử dụng win7, nó thường xuyên làm rối loạn ngôn ngữ bàn phím của tôi và tôi phải thêm từ xa 3 ngôn ngữ bàn phím, áp dụng và sau đó xóa chúng. Vì vậy, tôi đã tự hỏi nếu có một cách để làm điều đó thông qua một tập tin .bat tự động (thêm 3 ngôn ngữ bàn phím cụ thể và sau đó ngay lập tức loại bỏ chúng). Tuy nhiên, tôi biết hầu như không có gì về lệnh .bat, do đó, không ai biết nếu điều này là có thể thông qua một tập tin .bat và nếu có, những gì các lệnh tôi sẽ sử dụng?Thêm/xóa các ngôn ngữ bàn phím thông qua .bat

Cảm ơn bạn trước, George.

+0

Tôi không biết nếu có giao diện dòng lệnh để kiểm soát ngôn ngữ bàn phím - nhưng macro bàn phím sử dụng 'chương trình macro' có thể là giải pháp. 'AutoIt' là một công cụ khác có thể tự động chuyển động bàn phím và chuột. – foxidrive

+0

không chắc chắn nếu điều này có thể giúp: http://jekkilekki.wordpress.com/2009/01/05/changing-os-languages-in-windows-xp/ – npocmaka

Trả lời

2

Ngôn ngữ bàn phím được lưu trữ trong sổ đăng ký dưới HKEY_CURRENT_USER\Keyboard Layout Bạn có thể sử dụng REG.EXE trong các tệp lô để thêm/sửa đổi/xóa khóa đăng ký. REG.EXE không hỗ trợ thay đổi từ xa HKEY_CURRENT_USER khóa đăng ký để tệp sẽ phải được chạy từ máy tính được đề cập. Có lẽ chúng ta không phải làm vậy. Đây là những gì tôi sẽ làm. Khi máy tính của bạn hoạt động bình thường, hãy Goto lời nhắc CMD bằng cách nhấp vào nút bắt đầu và nhập CMD vào hộp chạy. Từ lời nhắc CMD, nhập:

REG QUERY "HKCU\Keyboard Layout" /s 

Điều này sẽ cho bạn thấy các khóa đăng ký sẽ trông như thế nào khi tất cả đều tốt. Bây giờ có một bản chụp đó và lưu nó trong một tập tin bằng cách gõ:

REG EXPORT "HKCU\Keyboard Layout" KeyboardLayout.reg 

Điều này sẽ tạo ra các tập tin KeyboardLayout.reg trong bất cứ thư mục CMD nhắc bạn nói. Tôi không chắc tại sao bạn sẽ phải thêm 3 ngôn ngữ cụ thể và sau đó loại bỏ chúng để trở lại thứ tự làm việc nhưng tôi có cảm giác rằng chỉ cần thiết lập đăng ký trở lại cách nó được khi nó làm việc sẽ khắc phục vấn đề. Lần sau nó xảy ra, từ xa duyệt đến vị trí của tập tin KeyboardLayout.reg và nhấp đúp vào nó. Nó sẽ cho bạn biết chìa khóa đã được cập nhật và nhấn OK. Xem nếu mà sửa chữa nó. Nếu không, hãy khởi động lại máy tính đó và xem nó có hoạt động không. Nếu nó vẫn không hoạt động, hãy đăng lại bình luận và tôi sẽ cho bạn biết những gì tôi sẽ làm tiếp theo.

5

Có thể.

http://blogs.msdn.com/b/shawnste/archive/2007/04/12/configuring-international-settings-from-the-command-line.aspx

http://msdn.microsoft.com/en-us/goglobal/bb964650#eyb

dòng lệnh ví dụ:

control intl.cpl,, /f:"%CD%\AddKeyboardLanguage.xml" 

AddKeyboardLanguage.xml dụ:

<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend"> 
<gs:UserList> 
<gs:User UserID="Current" CopySettingsToDefaultUserAcct="true" CopySettingsToSystemAcct="true"/></gs:UserList> 
<gs:InputPreferences> 

<!--ch-Google--><gs:InputLanguageID Action="add" ID="0804:E0200804"/> 

</gs:InputPreferences> 
</gs:GlobalizationServices> 

dụ RemoveKeyboardLanguage.xml:

<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend"> 
<gs:UserList> 
<gs:User UserID="Current" CopySettingsToDefaultUserAcct="true" CopySettingsToSystemAcct="true"/></gs:UserList> 
<gs:InputPreferences> 

<!--ch-Google--><gs:InputLanguageID Action="remove" ID="0804:E0200804"/> 

</gs:InputPreferences> 
</gs:GlobalizationServices> 
+1

Đối với tôi nó hoạt động rất tốt trên Win7. Tôi không trả lời bạn cụ thể, nhưng vì tôi cần giải pháp tương tự và vấp phải câu hỏi của bạn trong quá trình nghiên cứu, tôi nghĩ nó có thể hữu ích cho những người khác trong tương lai. – Ying

+0

Chỉ dành cho các bản ghi: Tại sao bạn thêm '' vào tệp .xml của bạn? – PeterCo

+0

Tôi nghĩ rằng nó có thể được gỡ bỏ. Nó chỉ là một bình luận. – Ying

2

Sử dụng các mẹo @Ying/link ... tôi đã thực hiện một tập tin pt.xml:

<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend"> 

    <!--User List--> 
    <gs:UserList> 
     <gs:User UserID="Current"/> 
    </gs:UserList> 

    <!--input preferences--> 
    <gs:InputPreferences> 
     <!--add pt-BR keyboard input and set as default--> 
     <gs:InputLanguageID Action="add" ID="0416:00010416" Default="true"/> 
    </gs:InputPreferences> 

</gs:GlobalizationServices> 

và sau đó chỉ cần tạo ra một .bat với lệnh này bên trong:

control intl.cpl,, /f:"%CD%\pt.xml" 

đúp chuột lên nó rồi nó sẽ hoạt động ngay lập tức!

+0

Chính xác những gì tôi cần, cảm ơn. –

1

Tôi cũng gặp phải sự cố tương tự - en-US được thêm tự động và tôi phải thêm en-US rồi xóa nó để loại bỏ bố cục.Ngay cả với tập tin batch, tôi thấy rằng bạn không thể chỉ xóa nó, trước tiên bạn phải thêm bố cục (ngay cả khi nó được hiển thị trên danh sách bố cục bàn phím) để có thể xóa nó giống như khi bạn làm thủ công.

Do đó, các tập tin Remove_en-US.xml đầu tiên cho biết thêm cách bố trí và sau đó loại bỏ nó:

<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend"> 

    <!--User List--> 
    <gs:UserList> 
     <gs:User UserID="Current"/> 
    </gs:UserList> 

    <!--input preferences--> 
    <gs:InputPreferences> 
     <!--add en-US keyboard input--> 
     <gs:InputLanguageID Action="add" ID="0409:00000409"/> 
     <!--remove en-US keyboard input--> 
     <gs:InputLanguageID Action="remove" ID="0409:00000409"/> 
    </gs:InputPreferences> 

</gs:GlobalizationServices> 

Remove_en-US.bat:

control intl.cpl,, /f:"%CD%\Add_en-US.xml" 

Ở đây, 0409locale ID00000409 là các giá trị bố trí bàn phím. Để biết danh sách locale ID:keyboard layout value, hãy xem https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-8.1-and-8/hh825682(v=win.10).