Версия AutoIt: 3.
Описание:
Программа должна переключать раскладку нажатием одной клавишей. Желательно с помощью клавиши Caps Lock.
Для чего?
Есть Punto Switcher для этих целей, но он немного глючит - иногда работает как Caps Lock.
Все равно Caps lock редко используется
Скорее всего она будет полезна многим.
Примечания:
Кое-как пытался это сделать.
Описание:
Программа должна переключать раскладку нажатием одной клавишей. Желательно с помощью клавиши Caps Lock.
Для чего?
Есть Punto Switcher для этих целей, но он немного глючит - иногда работает как Caps Lock.
Все равно Caps lock редко используется
Скорее всего она будет полезна многим.
Примечания:
Кое-как пытался это сделать.
Код:
Func _EnableLangSwitching($key,$mod,$lng)
$vrtkey='1,2,3'
;модификаторы клавиш (разрешены: '05' - Ctrl; '06' - Alt)
$keymod='05,05,06'
;коды языков (можете посмотреть в разделе "Appendix" руководства по AutoIt или в вышеприведенном примере)
$lang='0409,0419,0422'
$constpart="HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\000001"
$akey=StringSplit($key,',',1)
$amod=StringSplit($mod,',',1)
$alng=StringSplit($lng,',',1)
If UBound($akey,1)=UBound($amod,1) and UBound($akey,1)=UBound($alng,1) Then
For $i=1 To UBound($alng,1)-1
RunWait('REG ADD "' & $constpart & StringFormat('%02s"',$i-1) & ' /v "Virtual Key" /t REG_BINARY /d ' & Hex(Asc($akey[$i]),2) & '000000 /f','',@SW_HIDE)
RunWait('REG ADD "' & $constpart & StringFormat('%02s"',$i-1) & ' /v "Key Modifiers" /t REG_BINARY /d ' & $amod[$i] & 'c00000 /f','',@SW_HIDE)
RunWait('REG ADD "' & $constpart & StringFormat('%02s"',$i-1) & ' /v "Target IME" /t REG_BINARY /d ' & StringRight($alng[$i],2)&StringLeft($alng[$i],2)&StringRight($alng[$i],2)&StringLeft($alng[$i],2) & ' /f','',@SW_HIDE)
Next
SetError(0)
Return(1)
Else
SetError(1)
Return(0)
EndIf
EndFunc
Func _DisableLangSwitching($count)
$constpart="HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\000001"
For $i=0 To $count-1
RunWait('REG DELETE "' & $constpart & StringFormat('%02s"',$i) & ' /f','',@SW_HIDE)
Next
EndFunc