怎样取消一个输入法
上次看到有位高手写的这段代码使某个输入法立刻被激活DllCall("user32.dll","long","LoadKeyboardLayout","str","E0330804","int",0x1),那么如果想让某个输入法马上从托盘消失这段代码应该怎样写呢?还有一个问题就是在一些要输入的函数中怎样才能输入引号,也就是这个"符号,谢谢各位指教[ 本帖最后由 雨滴的孤独 于 2008-7-2 17:49 编辑 ] UnloadKeyboardLayout
MSDN有讲:http://msdn.microsoft.com/en-us/library/ms646324(VS.85).aspx http://www.autoitx.com/forum.php?mod=viewthread&tid=621 我写了这段代码下去还是没用,输入法没有马上消失,要重启才行,DllCall("user32.dll","int","UnLoadKeyboardLayout","long","E00F0804") 这个API函数只对internat.exe有效。。。对ctfmon.exe无效。
也就是说只对2000那个经典输入法有效。对XP以上的高级文字服务无效。 不是吧,我想取消的是极点五笔,2楼那个帖里好像成功取消搜狗输入法吧 每个输入法的编码是不同的。。。自己改下不就可以了?
此帖作废
$mainwindow = GUICreate('hgf')GUISetState()
dllcall("user32.dll","long","LoadKeyboardLayout","str","E0200804","int",0x1)
sleep(2000)
dllcall("user32.dll","long","LoadKeyboardLayout","str","00000804","int",0x1)
sleep(2000)
我的是internat.exe,UnloadKeyboardLayout无效,楼主用这个吧
[ 本帖最后由 kakinkgb 于 2008-6-17 19:54 编辑 ] 我知道哦,我那个输入法的编码就是极点五笔的,先试试7楼的
此帖真理,收工
我晕,又可以了GUICreate('hgf')
GUISetState()
$rr=dllcall("user32.dll","long","LoadKeyboardLayout","str","E0200804","int",0x1);呼叫拼音++
sleep(2000)
DllCall("user32.dll","int","UnloadKeyboardLayout","long",$rr);关闭拼音++,注意这个$rr
sleep(2000)
我看了木纳给的帖子,居士的用法不对
UnloadKeyboardLayout即可以用在输入法指示器,也可以用在高级文字服务,我亲自试过了
详细用法看这里:http://vbworld.sxnw.gov.cn/vbapi/detail/UnloadKeyboardLayout.htm
PS,说实话还是dllcall("user32.dll","long","LoadKeyboardLayout","str","00000804","int",0x1)比较好,不会引起混乱,切记!
[ 本帖最后由 kakinkgb 于 2008-6-17 21:01 编辑 ] 我晕,7楼的代码不就是主帖里面的吗,那是激活的吧
回复 10# kakinkgb 的帖子
嗯。是我的疏忽。。。没有实际的测试。。因为我一直几年没用过高级文字服务了。
一网友说不行。我也没有测试。汗。
还有其实UnloadKeyboardLayout函数加载键盘布局和句柄都是一样可以实现的。 楼上各种办法均无法关闭输入法!
页:
[1]