# sys.input 库模块帮助文档

## sys.input 成员列表 <a id="sys.input" href="#sys.input">&#x23;</a>

系统输入法相关函数，  
可用于 Win7/Win10/Win11 以及之后的系统  

相关库：win.rt.bcp47

### sys.input.* <a id="sys.input.any" href="#sys.input.any">&#x23;</a>
可不用声明直接在此输入函数名并调用 input.dll 的 API 函数

### sys.input.disable <a id="sys.input.disable" href="#sys.input.disable">&#x23;</a>
禁用与启用键盘布局或输入法  
可使用 win.rt.bcp47.getInputMethods 函数返回所有可用键盘布局或输入法

### sys.input.disable(layoutOrTip,enabled) <a id="sys.input.disable" href="#sys.input.disable">&#x23;</a>
禁用与启用键盘布局或输入法，  
@layoutOrTip 使用字符串指定键盘布局或输入法，  
例如 "0409:00000409" 为英文键盘。  
@disabled 参数指定是否禁用输入法，省略参数则默认值为 true

### sys.input.find(输入法名称) <a id="sys.input.find" href="#sys.input.find">&#x23;</a>
使用参数 @1 指定的输入法显示名称查找已启用的输入法信息。  
参数支持部分匹配与模式匹配。

### sys.input.getDescription <a id="sys.input.getDescription" href="#sys.input.getDescription">&#x23;</a>
返回键盘布局或输入法描述

### sys.input.getDescription(layoutOrTip) <a id="sys.input.getDescription" href="#sys.input.getDescription">&#x23;</a>
返回键盘布局或输入法描述  
@layoutOrTip 使用字符串指定键盘布局或输入法，  
例如 "0409:00000409" 为英文键盘

### sys.input.getEnabledLayoutOrTips() <a id="sys.input.getEnabledLayoutOrTips" href="#sys.input.getEnabledLayoutOrTips">&#x23;</a>
返回一个包含所有启用的输入法或键盘布局状态的表，  
键为键盘布局或输入法的 ID，例如 "0409:00000409" ，  
值为如下类型之一，  
键盘布局的值为 2 _LOTP_KEYBOARDLAYOUT，输入法的值为 1 _LOTP_INPUTPROCESSOR

### sys.input.getLayoutOrTips <a id="sys.input.getLayoutOrTips" href="#sys.input.getLayoutOrTips">&#x23;</a>
返回所有键盘布局与输入法的数组

### sys.input.getLayoutOrTips(enabled,description) <a id="sys.input.getLayoutOrTips" href="#sys.input.getLayoutOrTips">&#x23;</a>
返回所有键盘布局与输入法的数组。  
如果参数 @1 为 true，则不返回已禁用的元素。  
如果参数 @2 为 true，则返回数组中的每个元素都包含描述（ description ）字段。  
数组成员为 LAYOUTORTIPPROFILE 结构体，  
详细用法请查看函数源码。  

一般可使用简化了的 getEnabledLayoutOrTips 函数

### sys.input.install <a id="sys.input.install" href="#sys.input.install">&#x23;</a>
禁用与启用键盘布局或输入法  
可使用 win.rt.bcp47.getInputMethods 函数返回所有可用键盘布局或输入法

### sys.input.install(layoutOrTip,flags) <a id="sys.input.install" href="#sys.input.install">&#x23;</a>
禁用与启用键盘布局或输入法，  
@layoutOrTip 使用字符串指定键盘布局或输入法，  
例如 "0409:00000409" 为英文键盘。  
@flags 用一个数值指定选项，1 为禁用，0 为启用，  
其他可用值参考 https://docs.microsoft.com/en-us/windows/win32/tsf/installlayoutortip

### sys.input.setDefault(layoutOrTip,flags) <a id="sys.input.setDefault" href="#sys.input.setDefault">&#x23;</a>
设置默认输入法，  
@layoutOrTip 使用字符串指定键盘布局或输入法，  
@flags 参数不必指定  

仅支持 Win10,Win11 或之后的操作系统，  
必须提前导入库： win.rt.bcp47  

系统设置每个应用窗口使用不同输入法才能实时看到效果，  
可用 SystemParametersInfo 修改该设置（参考 ImTip 源码）

### 自动完成常量
_LOTP_INPUTPROCESSOR=1  
_LOTP_KEYBOARDLAYOUT=2  
