Comment puis-je envoyer un événement de changement de disposition du clavier avec la touche auto dans Windows 7?

Je souhaite remapper la mise en page du clavier / changement de langue à Win + Space , je l'ai essayé avec:

LWin & Space :: Envoyer, ^ +

Mais cela ne semble pas fonctionner, je voudrais qu'il envoie une séquence Ctrl + Shift afin que je puisse basculer entre les mises en page du clavier avec Win + Space .

Comment puis-je que cela fonctionne?

5 Solutions collect form web for “Comment puis-je envoyer un événement de changement de disposition du clavier avec la touche auto dans Windows 7?”

Win + Space switch fonctionne bien sur mon win7-x64:

; This should be replaced by whatever your native language is. See ; http://msdn.microsoft.com/en-us/library/dd318693%28v=vs.85%29.aspx ; for the language identifiers list. ru := DllCall("LoadKeyboardLayout", "Str", "00000419", "Int", 1) en := DllCall("LoadKeyboardLayout", "Str", "00000409", "Int", 1) #Space:: w := DllCall("GetForegroundWindow") pid := DllCall("GetWindowThreadProcessId", "UInt", w, "Ptr", 0) l := DllCall("GetKeyboardLayout", "UInt", pid) if (l = en) { PostMessage 0x50, 0, %ru%,, A } else { PostMessage 0x50, 0, %en%,, A } 

Plus de détails: http://www.autohotkey.com/board/topic/70019-keyboard-layout-switcher-for-many-layouts/

Êtes-vous sûr que c'est Ctrl + Shift ? Sur mon système, c'est Alt + Shift . De toute façon, utilisez cette commande:

 LWin & Space::Send, {Alt Down}{Shift}{Alt up} 

Remplacez Alt pour Ctrl si votre système utilise effectivement la combinaison Ctrl + Shift .

Vous pouvez facilement (en changeant les deux premières lignes vers:

 $~#Space::LangSwitch(1) $~#Space up::LangSwitch(2) 

) Modifiez le commutateur de mise en page du clavier de wOxxOm pour utiliser Win + Space au lieu du droit contrôle. Et cela fonctionnera, peu importe les raccourcis clavier mis en place pour changer de disposition dans Windows (par défaut Alt + Shift, j'utilise Ctrl + Shift).

En raison de la commutation non native (le script utilise WinAPI), le script entier est plutôt volumineux, donc je ne l'ai pas collé en ligne. Dans le cas de l'inaccessibilité d'autohotkey.com, voici: http://pastebin.com/ygm3f6sp

(Encore une fois, tous les crédits vont à wOxxOm, le script source est là: http://www.autohotkey.com/board/topic/24666-keyboard-layout-switcher/ )

PS Ce script est assez ancien et possède des octets offsets codés, donc je ne sais pas si cela fonctionnera avec Autohotkey.exe 64 bits ou Windows 64 bits. J'ai seulement 32 bits.

Le script Andrei Pak a au moins les limites suivantes:

  1. Ne fonctionne pas dans la boîte de dialogue FileOpen et dans d'autres fenêtres
  2. Ne fonctionne pas dans les fenêtres de la console
  3. Vous devez connaître à l'avance KLID de mise en page (0x04090409, etc.) et le modifier dans le code (code fort sale).

Ce script avance dans les mises en page actives de votre système par Win + Space :

 #Space::PostMessage WM_INPUTLANGCHANGEREQUEST:=0x50, INPUTLANGCHANGE_FORWARD:=0x2,,, % (hWndOwn := DllCall("GetWindow", Ptr, hWnd:=WinExist("A"), UInt, GW_OWNER := 4, Ptr)) ? "ahk_id" hWndOwn : "ahk_id" hWnd 

Si vous voulez plus de contrôle (avoir> 2 mises en page, besoin d'un raccourci pour définir une certaine mise en page):

 F2::Lyt.Set() ; switch input language. F3::Lyt.Set("Forward") ; move forward (cycle) in current layout list F4::Lyt.Set("-en") ; set first non-english F7::Lyt.Set("en", "global") ; set first english layout in all windows F8::Lyt.Set(2) ; set second layout in current layout list 

Utilisation de la classe Lyt (classe de copie en dessous de votre code pour l'utiliser dans votre script).

Votre script est:

 #Space:: Sleep 500 Send, {CTRL} return 

Ensuite, installez el pointwitcher et réglez la langue de changement sur la touche de commande. c'est tout

  • Impossible d'installer iTunes car le service Windows Installer n'a pas pu être consulté
  • Micrososft Word créant une zone de texte avec seulement une bordure supérieure
  • Comment puis-je déplacer le fichier de page vers un autre emplacement de disque physique?
  • Carte mère remplacée, lettre de lecteur vissée, pas de démarrage
  • Comment puis-je faire apparaître tous les dossiers de Windows 7 dans le même mode de visualisation?
  • Comment revenir à Windows 7 après l'installation de Windows 8?
  • Comment désactiver la restauration du système et supprimer les dossiers d'informations sur le volume système dans Windows?
  • Le lecteur du lecteur de carte n'a pas installé correctement, mais le même pilote utilisé
  • Mélanger les écrans tactiles et les écrans non tactiles dans Windows 7?
  • Pourquoi la lumière du disque dur clignote-t-elle une fois par seconde?
  • Pourquoi mon lecteur flash est-il devenu "en lecture seule" et (comment) puis-je le réparer?
  • Soyons le génie de l'ordinateur et du réseau.