找回密码
 加入
搜索
查看: 5151|回复: 8

[AU3基础] [已解决]如何判断当前窗口是否打开输入法?

  [复制链接]
发表于 2010-8-19 14:48:24 | 显示全部楼层 |阅读模式
本帖最后由 wl00560 于 2010-8-19 16:33 编辑

如何判断当前窗口是否打开了输入法?
如果打开了输入法,则执行a.exe
如果没有打开输入法,则执行b.exe

评分

参与人数 1金钱 +10 收起 理由
pusofalse + 10 感谢主动给标题加注“已解决”字样。

查看全部评分

发表于 2010-8-19 14:55:17 | 显示全部楼层
本帖最后由 zcx880517 于 2010-8-19 15:12 编辑

可以根据这个来试试。
http://www.autoitx.com/forum.php ... =%CA%E4%C8%EB%B7%A8
先判断当前输入法


你的用意是什么呢?切换输入法还是?
 楼主| 发表于 2010-8-19 16:13:47 | 显示全部楼层
想编个能登录论坛的脚本。
但AutoIt没办法输入中文,所以有时候需要输入法,有时候又不需要,呵呵
 楼主| 发表于 2010-8-19 16:33:06 | 显示全部楼层
谢谢,解决了
发表于 2010-8-19 16:33:55 | 显示全部楼层
1.新创建的窗口/进程是不管原先的输入法状态的.
2.只能关闭自己进程的输入法状态.
举个例子:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 438, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 8, 16, 601, 417)
GUICtrlSetData(-1, "Edit1")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


MsgBox(32,'禁用前','禁用输入法')

$rt=DllCall('imm32.dll','int','ImmDisableIME','DWORD',0)
If IsArray($rt) Then
        $rt=$rt[0]
Else
        $rt=-1
EndIf
MsgBox(32,"禁用后",$rt)

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd

评分

参与人数 1金钱 +30 收起 理由
pusofalse + 30 学习了~

查看全部评分

发表于 2010-8-26 16:06:05 | 显示全部楼层
學習了..謝謝!
发表于 2011-2-26 22:23:41 | 显示全部楼层
好的,正在找关闭输入法,谢了
发表于 2011-2-26 22:23:50 | 显示全部楼层
好的,正在找关闭输入法,谢了
发表于 2014-1-16 21:36:40 | 显示全部楼层
DllCall('imm32.dll','int','ImmDisableIME','DWORD',0);禁用输入法  就这一句,真心好用
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-28 15:23 , Processed in 0.153237 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表