javascript利用控件对windows的操作实现原理与应用


Posted in Javascript onDecember 23, 2012
//windows 98 
<script language=javascript> 
//var wsh = new ActiveXObject("WScript.Shell"); 
//wsh.Run("rundll32.exe user.exe,exitWindows"); 
</script> 
//win2000 or xp 
<script language=javascript> 
var wsh = new ActiveXObject("WScript.Shell"); 
wsh.sendKeys("^{ESC}"); //相当于按 Ctrl + ESC 键 
wsh.sendKeys("U~"); //按 U 键回车 
wsh.sendKeys("S~"); //按 S 键回车 
</script>

sendKeys(args[])方法详解(VB):
vb.net中使用sendkeys遥控:
大家在vb6中都用过sendkeys,幕通过发送键盘的事件间接地控制外部程序,是有遥控之说。
我在vb7中却发现这个不能用了, 也就不了了之,后来一次在查阅msdn的时候竟看到了这个,是以尝试了一下,竟然旧貌新颜,还是一样好用。

主要是在system.winforms族中找到sendkeys 使用方法同vb6
键:一般的字符键如下输入”a” “b” “c”………………”z”等,如果要连续按下两个以上就使用”ab”的形式如果同时按下ab就使用括号如”(ab)”
如果是功能键,就放到大括号中如“{f4}” 另:用+代表shift,用^代表ctrl,用%代表alt
如“+a”表示按下shift同时按a
下面是一个例子
dim sdstr as system.winforms.sendkeys
sdstr.send("%{f4}") 发送alt+f4
下面这个代码在按下button2以后转移焦点到下一个控件,使按钮能按下又不能按受焦点.

protected sub button2_click(byval sender as object, byval e 
as system.eventargs) 
dim sdstr as system.winforms.sendkeys 
sdstr.send("{tab}") 
end sub

下面使用sendwait,使用的方法同上,不过执行这个过程会等待到发送的键执行完成以后,再继续执行后面的代码.
protected sub button2_click(byval sender as object, byval e 
as system.eventargs) 
dim sdstr as system.winforms.sendkeys 
'sdstr.send("{tab}") 
sdstr.sendwait("{tab}") 
end sub

vb.net中使用shell调用外部程序:
shell(pathname as string,[style as 
microsoft.visualbasic.appwinstyle=2],[wait as 
boolean=false],[timeout as integer=-1]) as integer

调用资源管理器
dim pid as integer 
pid = shell("explorer.exe http://vbnetcn.126.com", 
microsoft.visualbasic.appwinstyle.normalfocus, true)

调用默认程序
dim pid as integer 
pid = shell("start.exe mailto:vbnetcn@163.com", 
microsoft.visualbasic.appwinstyle.hide, true)

使用microsoft.visualbasic.appwinstyle.hide参数是为了隐藏程序
运行时跳出的dos窗口。

sendkeys是个模拟键盘消息的函数,我们暂且不谈windows消息驱动来单纯的考虑sendkey这个函数
sendkeys既然模拟的是键盘消息,那么他就只能模拟键盘上能输入的消息,比如说
sendkeys("abcd")
其实并不是这个脚本把"abcd"这个字串发出去
而是模拟键盘的输入,相当于键盘先点击了a再点击了b在点击了c。。。。。
加入发送的按键消息被qq的聊天框受到了,那么我们都知道他的处理方法是把英文字母显示到聊天框中
但是我们发现,加入用sendkey模拟输入汉字的话,似乎就不现实了,因为键盘上没有中文按键。。。。
但是我们有想输入我们汉字的聊天内容,那么我们可以怎么办呢?

从原理说起哈,sendkey其实就是个在windows中发送特定消息的一个函数(我猜他发送的是WM_SYSKEYDOWN的消息,我没有测试过哈^_^)

我们假如要发送汉字的聊天框的内容的话,我们也要从windows消息机制下手,先找到聊天消息的句柄(可以利用findwindow函数或者用spy工具哈),然后在找到上面的聊天框的句柄,接着我们就可以想这个句柄发送WM_SETTEXT的消息了。
粗略的

Javascript 相关文章推荐
javascript 必知必会之closure
Sep 21 Javascript
也说JavaScript中String类的replace函数
Sep 22 Javascript
js的匿名函数使用介绍
Dec 11 Javascript
详解jquery中$.ajax方法提交表单
Nov 03 Javascript
jQuery多媒体插件jQuery Media Plugin使用详解
Dec 19 Javascript
js模仿java的Map集合详解
Jan 06 Javascript
javascript中去除数组重复元素的实现方法【实例】
Apr 12 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
Oct 10 Javascript
微信小程序搜索组件wxSearch实例详解
Jun 08 Javascript
jQuery实现动态显示select下拉列表数据的方法
Feb 05 jQuery
微信小程序实现动态获取元素宽高的方法分析
Dec 10 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
Sep 21 Javascript
javascript小数四舍五入多种方法实现
Dec 23 #Javascript
javascript+xml实现简单图片轮换(只支持IE)
Dec 23 #Javascript
JavaScript与DOM组合动态创建表格实例
Dec 23 #Javascript
JavaScript执行效率与性能提升方案
Dec 21 #Javascript
JS实现图片预加载无需等待
Dec 21 #Javascript
Javascript根据指定下标或对象删除数组元素
Dec 21 #Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
Dec 21 #Javascript
You might like
php中文件上传的安全问题
2006/10/09 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
jquery 学习之二 属性(类)
2010/11/25 Javascript
JQuery入门——用one()方法绑定事件处理函数(仅触发一次)
2013/02/05 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
JS插件overlib用法实例详解
2015/12/26 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
详解如何较好的使用js
2016/12/16 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
webpack中CommonsChunkPlugin详细教程(小结)
2017/11/09 Javascript
angular 服务的单例模式(依赖注入模式下)详解
2018/10/22 Javascript
vue.js实现的幻灯片功能示例
2019/01/18 Javascript
javascript浅层克隆、深度克隆对比及实例解析
2020/02/09 Javascript
JavaScript的垃圾回收机制与内存管理
2020/08/06 Javascript
Django返回json数据用法示例
2016/09/18 Python
python 中split 和 strip的实例详解
2017/07/12 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
python 利用turtle库绘制笑脸和哭脸的例子
2019/11/23 Python
Python使用docx模块实现刷题功能代码
2020/02/13 Python
使用Tkinter制作信息提示框
2020/02/18 Python
Python celery原理及运行流程解析
2020/06/13 Python
使用python-cv2实现视频的分解与合成的示例代码
2020/10/26 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
详解CSS3:overflow属性
2020/11/17 HTML / CSS
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
公务员职务工作的自我评价
2013/11/01 职场文书
会议开场欢迎词
2014/01/15 职场文书
管理提升方案
2014/06/04 职场文书
公司委托书格式
2014/08/01 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
九一八事变演讲稿范文
2014/09/14 职场文书
《爱的教育》读书心得
2014/11/08 职场文书
齐云山导游词
2015/02/06 职场文书
体育委员竞选稿
2015/11/21 职场文书
赞美教师的句子
2019/09/02 职场文书
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL