网站地图    收藏   

主页 > 前端 > css教程 >

html 与 ahk 伪通信 - html/css语言栏目:html.css - 自学

来源:自学PHP网    时间:2015-04-14 14:50 作者: 阅读:

[导读] 最近帮朋友搞一个东西, 用 ahk 做的壳(全屏无标题置顶窗口, 用 ahk 比较容易实现), 内容是加载的 html (里面包括一些 flash, 和 flash 与 html 的通信), 但这都不是要说的重点, 重点是后来要求...

最近帮朋友搞一个东西, 用 ahk 做的壳(全屏无标题置顶窗口, 用 ahk 比较容易实现), 内容是加载的 html (里面包括一些 flash, 和 flash 与 html 的通信), 但这都不是要说的重点, 重点是后来要求 html(js/flash) 控制关闭 ahk, 这个需求难着了我了, 一直没想到如何实现.

今天无意间又看了一下 ahk 帮助文档关于 activeX 的部分, 发现例子里有关于用 ComObjConnect 处理对象公开事件的方法, 于是想到了一个比较巧妙的方法, 实现非常简单, 以至于都不好意思写一篇文章来介绍这个方法, 但还是记录一下, 因为确实很好用.

ahk 代码:

#NoEnv
#SingleInstance focus

Gui, Add, ActiveX, w700 h400 vWB, Shell.Explorer
WB.Navigate(A_ScriptDir . "\index.html")
; 重点来了
ComObjConnect(WB, WB_events)

Gui, Show

Return

class WB_events
{
    ; 处理方法, 当然也可以监听其他事件
     NavigateComplete2(wb, url)
    {
        ; 用 SplitPath 简单解析一下很方便
        SplitPath, url, fullCmd, DISCARD, opt, cmd

        if (cmd == "test")
        {
            traytip, Test, This is "test" command.
        }
        else if (cmd == "__CLOSE__" )
        {
            ExitApp
        }
        else
        {
            traytip, %fullCmd%, cmd: %cmd%`, opt: %opt%
        }
    }
}

GuiEscape:
GuiClose:
exitapp

html 代码:
<ul>
    <li ><a href="test" target="_cp" >test</a></li>
    <li ><a href="command.options" target="_cp" >aaa.bbb</a></li>
    <li ><a href="__CLOSE__" target="_cp" >close</a></li>
</ul>

<iframe name="_cp" src="about:blank" style="display:none;"></iframe>

简要说明:  www.2cto.com
其实就是在 html 里放一个用来接收"命令" 的 iframe, 将需要发送的"命令"写在链接上, ahk 中监听 NavigateComplete2 事件, 处理函数中解析 url (格式自己随便定义了, 我想到个简单规则就是 command.options, 这样很容易利用 SplitPath 方法把各部分解析出来加以利用, 接下来做什么就全交给 ahk 了 ;)

 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论