有道词典的窗口获取

遇到了问题?请先进行搜索(中文和英文),然后在此提问

Moderators: tmplinshi, arcticir

zichenw6
Posts: 1
Joined: 13 Apr 2017, 04:40

有道词典的窗口获取

13 Apr 2017, 05:32

用AHK实现不同窗口设置不同的输入法,大窗口如QQ浏览器等都没问题
但是像有道词典和listary这种小窗口IfWinActive就不起作用了,该用什么办法监控这类型的窗口?
Image
Image

Code: Select all

GroupAdd,cn,ahk_exe QQ.exe  ;QQ
GroupAdd,cn,ahk_exe WINWORD.EXE ;word
GroupAdd,cn,ahk_exe MindManager.exe

GroupAdd,en,ahk_exe dopus.exe 
GroupAdd,en,ahk_class Notepad++
GroupAdd,en,ahk_exe sublime_text.exe

setChineseLayout(){
    ;发送中文输入法切换快捷键,请根据实际情况设置。
    send {Ctrl Down}{Alt Down}{0}
    send {Ctrl Up}{Alt Up}
}
setEnglishLayout(){
    ;发送英文输入法切换快捷键,请根据实际情况设置。
    send {Ctrl Down}{Alt Down}{9}
    send {Ctrl Up}{Alt Up}
}

;监控消息回调ShellMessage,并自动设置输入法
Gui +LastFound
hWnd := WinExist()
DllCall( "RegisterShellHookWindow", UInt,hWnd )
MsgNum := DllCall( "RegisterWindowMessage", Str,"SHELLHOOK" )
OnMessage( MsgNum, "ShellMessage")

ShellMessage( wParam,lParam ) {
    If ( wParam = 1 )
    {
        WinGetclass, WinClass, ahk_id %lParam%
        ;MsgBox,%Winclass%
        Sleep, 1000
        WinActivate,ahk_class %Winclass%
        ;WinGetActiveTitle, Title
        ;MsgBox, The active window is "%Title%".
        IfWinActive,ahk_group cn
        {
            setChineseLayout()
            TrayTip,AHK, 已自动切换到中文输入法
            return
        }
        IfWinActive,ahk_group en
        {
            setEnglishLayout()
            TrayTip,AHK, 已自动切换到英文输入法
            return
        }
    }
}
pk23
Posts: 110
Joined: 24 Apr 2015, 00:49

Re: 有道词典的窗口获取

14 Apr 2017, 08:46

这边人少,ahk8那边也人少。
感觉现在玩ahk的人,比前几年少多了,不知道是不是错觉……
发帖最好用英文,去ask for help板块发,被回复和解决问题的概率,大一些

Return to “请求帮助”

Who is online

Users browsing this forum: No registered users and 17 guests