我用了如下代码来改变当前输入法
cnt = GetKeyboardLayoutList(0, NULL); lpKL = (HKL FAR *)LocalAlloc(LPTR, sizeof(HKL)* cnt); cnt = GetKeyboardLayoutList(cnt, lpKL);  
if ( !cnt ) 

return FALSE; 
} while( 0 < cnt ) 

cnt--; 
//取出现有的输入法,并和strImmName的值进行判断。 
if( ( ImmGetIMEFileName(*(lpKL + cnt), szImeName, sizeof(szImeName) ) ) && 
( !lstrcmpi(strImmName, szImeName) ) ) 

hKLReturn = *(lpKL + cnt); 
break;  


但vista系统中,ImmGetIMEFileName函数的返回值永远是0 我获得不到当前系统中的任何输入法。所以无法改变输入法。
察看了一下vista系统的注册表,发现没有xxx.ime这样的键值。
请问,我该如何解决。
怎么才能在vista系统中改变当前输入法为我想要指定的莫一种呢?
比如 当我的程序一启动,就将输入法设置为中文。还望高人指点一二。