QQ登录

只需一步,快速开始

376上位机VC MFC通过注册表获取当前全部输入法

[ 复制链接 ]

376上位机VC MFC通过注册表获取当前全部输入法

376上位机VC MFC通过注册表获取当前全部输入法

376上位机VC MFC通过注册表获取当前全部输入法通过注册表获取全部输入法功能展示
系统中有安装有多种输入法,如果拼音,五笔,通过快捷键Ctrl+Shift等可以来回切换。但如果常用的输入法在很后面,会很麻烦,我们就想调整输入法顺序。我们当前例程通过查询注册表获取当前使用中的全部输入法,效果如图,点击按钮就可获取并显示出来,要想调整顺序,只要调整对应编码顺序就可;

要点提示
我们知道在注册表HKEY_CURRENT_USER\\keyboard \\ layout preload下有子键1、2、3、4、5(这就是输入法的顺序),每个子键的缺省键值即为标识该输入法的串值,如串值00000409对应的是英文输入法,串值E0040804对应的是智能ABC输入法。

如果想知道每一个串值对应什么输入法,我们可以在HKEY_lOCAL_MACHINE\\System\\CurrentControlSet\\Control\\Keyboard Layouts之下找到这些字符串。点击下选中对应字符串,在注册表右侧就可以找到 变量名Layout Text,其对应的变量值就是输入法的名称。
知道了输入法的存放位置及顺序关系后,我们可以利用程序操作注册表把代表输入法顺序的串值进行相应移动,即可实现我们的目的了。我们当前例程获取及显示这些输入法,具体的改顺序只要对调串值就可

实现功能
1.新建基于对话框的应用程序
2.添加列表框控件,关联变量 CListCtrl m_List;添加按钮<获取系统 当前使用输入法>关联点击函数
void CGkbc8Dlg::OnExchange()
{
m_List.DeleteAllItems();

m_nExecute = 0;
AllRegKey(HKEY_CURRENT_USER, TEXT("keyboard layout\\preload")); //获取排列,对应编码
CString sTemp,sSubKey="System\\CurrentControlSet\\Control\\Keyboard Layouts\\";
int nCount = m_List.GetItemCount();
for(int i=0;i<nCount;i++)
{
m_nExecute = i+1;
sTemp=m_List.GetItemText(i,1);
AllRegKey(HKEY_LOCAL_MACHINE,sSubKey+sTemp);
}
}
3.函数中调用了自定义的变量及函数,所以添加这此函数变量,并初始化
private:
BOOL AllRegKeyValue(HKEY hRootKey, LPCTSTR szSubKey); //遍历子键全部值
BOOL AllRegKey(HKEY hRootKey, LPCTSTR szSubKey); //遍历子键的全部子键
UINT m_nExecute;
BOOL CGkbc8Dlg::AllRegKey(HKEY hRootKey, LPCTSTR szSubKey)
{
if(!AllRegKeyValue( hRootKey, szSubKey) )
return FALSE;

HKEY hSubKey;
DWORD dwIndex = 0;
long lResult;
lResult = RegOpenKeyEx(hRootKey, szSubKey, 0, KEY_READ, &hSubKey); // 打开注册表
if(ERROR_SUCCESS == lResult)
{
TCHAR szKeyName[256] = { 0 };
DWORD cbName = 256*sizeof(TCHAR);
lResult = RegEnumKeyEx(hSubKey, dwIndex, szKeyName, &cbName, 0, NULL, NULL, NULL); // 获取字段
while (lResult == ERROR_SUCCESS)
{
AllRegKeyValue(hSubKey,szKeyName);

cbName = 256*sizeof(TCHAR);//必需重新赋值
dwIndex++;
lResult = RegEnumKeyEx(hSubKey, dwIndex, szKeyName, &cbName, 0, NULL, NULL, NULL);
}
RegCloseKey(hSubKey); // 关闭注册表
return TRUE;
}
RegCloseKey(hSubKey);
return FALSE;
}
我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:376.上位机VC MFC通过注册表获取当前全部输入法.zip 
文件大小:138.07 KB  售价:11金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!





回复

使用道具 举报

快速回复 返回列表 客服中心 搜索