qop1830 发表于 2008-7-17 20:09:42

au3切换输入法!

在指定窗口切换到指定的输入法,,?         就这

弄了好几天的问题了      我用send弄了实在不好使       还有各种方法都试了   小弟不才搞不定

    到网上找api自己又不知道怎么弄。

            就差个好使的切换方法了   其他都没问题!

                     如果能用api那最好了

[ 本帖最后由 qop1830 于 2008-7-18 22:30 编辑 ]

bdrdc 发表于 2008-7-17 23:51:29

autoit模拟鼠标键盘确实耽误事,成功率不能100%,相当的烦人。

sanhen 发表于 2008-7-18 00:23:24

直接CALL API来实现的。不是发送按键的。

qop1830 发表于 2008-7-18 01:36:13

:face (35):   小的不才         那API我到MSND上看了但是我不知道au3上怎么用    瞎折腾了好段时间了   =.=

qop1830 发表于 2008-7-18 15:22:37

GUICreate('hgf')
GUISetState()
$rr=dllcall("user32.dll","long","LoadKeyboardLayout","str","E0040804","int",1+0);呼叫拼音++
sleep(2000)
DllCall("user32.dll","int","UnloadKeyboardLayout","long",$rr);关闭拼音++,注意这个$rr
sleep(2000)

只队本窗口有效果。。。   要怎样才能对所有窗口都有效果呢 ???

qop1830 发表于 2008-7-18 19:56:47

:face (35):   又一天了   未果。。。         是没挑战性???

sanhen 发表于 2008-7-18 20:07:22

对所有窗口有效果。要用API发一个信息过去的。我没时间研究,你先研究一下。

pcbar 发表于 2008-7-18 20:51:20

Func LoadKeyboardLayout($sLayoutID, $hWnd)
        Local $WM_INPUTLANGCHANGEREQUEST = 0x50
        Local $ret = DllCall("user32.dll", "long", "LoadKeyboardLayout", "str", $sLayoutID, "int", 1+0)
        DllCall("user32.dll", "ptr", "SendMessage", "hwnd", $hWnd, _
                        "int", $WM_INPUTLANGCHANGEREQUEST, _
                        "int", 1, _
                        "int", $ret)
EndFunc   ;==>LoadKeyboardLayout

星驰周 发表于 2008-7-18 21:50:02

不错啊,要是再来个
对当前用户的所有输入法列表就更好了

qop1830 发表于 2008-7-18 22:30:12

:face (36):   神一搬的人出现了就是不一样    感谢AU3    感谢sanhen感谢pcbar    感谢CCTV。。。。。。
   感谢没个回帖的人!   
此问题搞定!!

wuweixian 发表于 2010-3-2 16:51:25

回复 5# qop1830


    关注中.........
页: [1]
查看完整版本: au3切换输入法!