Что нового

Rus/lat с помощью Caps Lock

Andrey777

Чайник
Сообщения
1
Репутация
0
Версия AutoIt: 3.

Описание:
Программа должна переключать раскладку нажатием одной клавишей. Желательно с помощью клавиши 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
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1 517
Репутация
321
Предупреждение 1.Код программы нужно заключать в тег AUTOIT! :mad:
2. Ну сколько можно говорить, что Версия AutoIt: 3 ничего не значит?! Т.к. Есть версии от 3.2.5.1(и раньше) до 3.3.1.7 beta - между которыми очень много глобальных изменений!
 
Верх