雨滴的孤独 发表于 2008-6-16 18:55:23

怎样取消一个输入法

上次看到有位高手写的这段代码使某个输入法立刻被激活DllCall("user32.dll","long","LoadKeyboardLayout","str","E0330804","int",0x1),那么如果想让某个输入法马上从托盘消失这段代码应该怎样写呢?还有一个问题就是在一些要输入的函数中怎样才能输入引号,也就是这个"符号,谢谢各位指教

[ 本帖最后由 雨滴的孤独 于 2008-7-2 17:49 编辑 ]

kakinkgb 发表于 2008-6-16 22:03:05

UnloadKeyboardLayout
MSDN有讲:http://msdn.microsoft.com/en-us/library/ms646324(VS.85).aspx

木纳 发表于 2008-6-17 09:05:32

http://www.autoitx.com/forum.php?mod=viewthread&tid=621

雨滴的孤独 发表于 2008-6-17 16:52:43

我写了这段代码下去还是没用,输入法没有马上消失,要重启才行,DllCall("user32.dll","int","UnLoadKeyboardLayout","long","E00F0804")

sanhen 发表于 2008-6-17 18:25:46

这个API函数只对internat.exe有效。。。对ctfmon.exe无效。

也就是说只对2000那个经典输入法有效。对XP以上的高级文字服务无效。

雨滴的孤独 发表于 2008-6-17 18:35:17

不是吧,我想取消的是极点五笔,2楼那个帖里好像成功取消搜狗输入法吧

sanhen 发表于 2008-6-17 19:00:37

每个输入法的编码是不同的。。。自己改下不就可以了?

kakinkgb 发表于 2008-6-17 19:17:43

此帖作废

$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 编辑 ]

雨滴的孤独 发表于 2008-6-17 19:19:31

我知道哦,我那个输入法的编码就是极点五笔的,先试试7楼的

kakinkgb 发表于 2008-6-17 19:32:50

此帖真理,收工

我晕,又可以了
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 编辑 ]

雨滴的孤独 发表于 2008-6-17 19:34:23

我晕,7楼的代码不就是主帖里面的吗,那是激活的吧

sanhen 发表于 2008-6-18 00:34:42

回复 10# kakinkgb 的帖子

嗯。是我的疏忽。。。
没有实际的测试。。因为我一直几年没用过高级文字服务了。
一网友说不行。我也没有测试。汗。

还有其实UnloadKeyboardLayout函数加载键盘布局和句柄都是一样可以实现的。

bdrdc 发表于 2012-4-6 15:12:32

楼上各种办法均无法关闭输入法!
页: [1]
查看完整版本: 怎样取消一个输入法