Skrót do przełączania języka wprowadzania w systemie Windows 7

10

Korzystam z systemu Windows 7 i chciałbym zdefiniować niestandardowy skrót klawiszowy do przełączania między różnymi językami wprowadzania.

Wiem, że mogę zmienić je na Ctrl+ Shift, Left Alt+ Shiftlub poważny akcent, ale nie lubię żadnego z nich. Czy istnieje sposób zdefiniowania czegoś takiego jak Ctrl+, Spaceaby zmienić język wprowadzania?

Fynn
źródło

Odpowiedzi:

3

Myślę, że Windows natywnie nie obsługuje zmiany tych kluczy. W każdym razie możesz napisać skrypt AutoIt, aby nasłuchiwać niestandardowych powiązań klawiszy i programowo wysłać jeden z predefiniowanych skrótów klawiaturowych do systemu w celu zmiany układu klawiatury.

;^ = Ctrl
;! = Alt
;# = WinKey (Meta)
;+ = Shift

HotKeySet("^{Space}", "change") ;Registers Control + Space

;Main loop
While 1
    Sleep(100)
WEnd

;Changes Keyboard Layout
Func change()
    Send ("{ALTDOWN}") ;Hold down Alt
    Sleep(100) ;Wait 100 milliseconds
    Send("{LSHIFT}{ALTUP}") ;Press Left-Shift and release Alt
EndFunc

Wystarczy pobrać i zainstalować AutoIt (użyj tego linku, aby pobrać i zainstalować) i utwórz plik z .au3rozszerzeniem. Skopiuj i wklej powyższy kod i zapisz go. Możesz umieścić ten plik w folderze Autostart, jeśli chcesz, aby został otwarty podczas logowania.

fardjad
źródło
3

Powyższy skrypt nie działał dla mnie, ale zmodyfikowałem go i teraz działa.

#Include <Misc.au3>
;~ #RequireAdmin
;^ = Ctrl
;! = Alt
;# = WinKey (Meta)
;+ = Shift

HotKeySet("^{Space}", "change") ;Registers Contorl + Space
$dll = DllOpen("user32.dll")

ToolTip("Try to use ^Space"&@CRLF&"!!!!!!!!!!!!!!!!!!!")
Sleep(3000)
ToolTip('')

;Main loop
While 1
    Sleep(100)
WEnd

;Changes Keyboard Layout
Func change()
 While _IsPressed("11",$dll)
  Sleep(10)
 WEnd
 Send ("{ALTDOWN}") ;Hold down Alt
    Sleep(100) ;Wait 100 milliseconds
    Send("{LSHIFT}{ALTUP}") ;Press Left-Shift and release Alt
EndFunc
Siergiej Erokin
źródło
1

W systemie Windows 7 w obszarze Panel sterowania \ Region i język \ Klawiatury i język wybierz opcję „Zmień klawiatury”. Pojawi się małe wyskakujące okno; tam wybrał „Zaawansowane ustawienia klawiszy”, które pozwalają ustawić kombinacje, aby bezpośrednio uzyskać każdą klawiaturę docelową, a także ogólną sekwencję klawiszy przełączania.

Aganju
źródło
2
Problem w tym, że oferuje tylko 3 opcje, z których jedna nie ma tego samego klawisza w obu układach ... Inną opcją jest ustawienie innego klucza dla każdego języka, ale wymaga kombinacji modyfikatora. Nieidealny.
Henrik Erlandsson
0

Alternatywna odpowiedź

Jeśli dwa układy klawiatury nie różnią się wieloma symbolami, możesz dodać modyfikatory Alt dla języka obcego (powiedzmy, standardowe symbole układu US na warstwie Alt niemieckiej klawiatury) za pomocą narzędzia takiego jak AutoHotKey lub podobny.

Lub utwórz mapę klawiszy dla systemu operacyjnego, która jest bardziej poprawnym sposobem na zrobienie tego.

  • nigdy nie musisz przełączać się i zastanawiać, który język jest aktywny (może być bardzo rozpraszający)
  • możesz często uzyskiwać dostęp do warstwy Alt, co spowalnia przepływ.

W przypadku niektórych języków europejskich znaki można przenosić na stałe, zamiast mieć warstwę.

Na przykład [] i {} do kombinacji Alt / Shift kombinacji () i [] ;: "" do klawiszy w pobliżu üäö, co pozwala zachować prawie normalny amerykański układ kodowania i zrobić miejsce dla znaków w Twoim języku gdzie zwykle przebywają.

Henrik Erlandsson
źródło