html 与 ahk 伪通信
来源:互联网 发布:java 根据ip获取地区 编辑:程序博客网 时间:2024/05/29 17:30
最近帮朋友搞一个东西, 用 ahk 做的壳(全屏无标题置顶窗口, 用 ahk 比较容易实现), 内容是加载的 html (里面包括一些 flash, 和 flash 与 html 的通信), 但这都不是要说的重点, 重点是后来要求 html(js/flash) 控制关闭 ahk, 这个需求难着了我了, 一直没想到如何实现.
今天无意间又看了一下 ahk 帮助文档关于 activeX 的部分, 发现例子里有关于用 ComObjConnect 处理对象公开事件的方法, 于是想到了一个比较巧妙的方法, 实现非常简单, 以至于都不好意思写一篇文章来介绍这个方法, 但还是记录一下, 因为确实很好用.
ahk 代码:
#NoEnv#SingleInstance focusGui, Add, ActiveX, w700 h400 vWB, Shell.ExplorerWB.Navigate(A_ScriptDir . "\index.html"); 重点来了ComObjConnect(WB, WB_events) Gui, ShowReturnclass WB_events{ ; 处理方法, 当然也可以监听其他事件 ; 参考: http://msdn.microsoft.com/en-us/library/aa768334 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>
简要说明:
其实就是在 html 里放一个用来接收"命令" 的 iframe, 将需要发送的"命令"写在链接上, ahk 中监听 NavigateComplete2 事件, 处理函数中解析 url (格式自己随便定义了, 我想到个简单规则就是 command.options, 这样很容易利用 SplitPath 方法把各部分解析出来加以利用, 接下来做什么就全交给 ahk 了 ;)
- html 与 ahk 伪通信
- [AHK]用HTML做ahk界面
- AHK~与$的含义
- [Unity3d]unity与html通信
- reactnative 与webview通信(html)
- AHK
- ahk变量与内置变量
- csss----伪类,二级菜单显示与隐藏,html
- HTML与CSS基础之伪类选择器(三)
- HTML与CSS基础之否定伪类(四)
- HTML与CSS基础之伪元素(五)
- HTML与CSS基础之子元素的伪类(七)
- 伪静态是什么?伪静态与普通html静态网页区别?
- Flash与html及服务器的通信
- Flex程序与html通信方法大全
- QT与QWebkit中的html元素通信
- Flex程序与html通信方法大全
- Flex程序与html通信方法大全
- opencv2.4.3 imread问题
- 可以动态选取多个或者一个项的js方法。(可以动态添加 删除选项 js)
- Chukwa的部署尝试
- JDK1.6.0_07+Tomcat5.0+Myeclipse-8.5.0-win32配置搭建JSP环境
- Linux内核挂载根文件系统出现INIT:Id "S" respawning too fast: disabled for 5 minutes的解决方法
- html 与 ahk 伪通信
- xib加载图片方式
- memcached
- 通过FTP实现vxsim和vxworks主机之间的文件传输
- 编译移植android 2.3到tiny210 .
- 开发总结
- Android ListView记录上次滑动时位置状态
- C# 操作 SQLCE,SQL Server Mobile数据库
- 17行代码的贪吃蛇小游戏