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动态绑定事件的简单实现代码
Dec 25 Javascript
Extjs gridpanel 出现横向滚动条问题的解决方法
Jul 04 Javascript
JS控制文本框textarea输入字数限制的方法
Jun 17 Javascript
javascript右下角弹层及自动隐藏(自己编写)
Nov 20 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
Feb 23 Javascript
AngularJS教程 ng-style 指令简单示例
Aug 03 Javascript
jQuery控制元素隐藏和显示
Mar 03 Javascript
JS+HTML+CSS实现轮播效果
Nov 28 Javascript
Vue代码整洁之去重方法整理
Aug 06 Javascript
JQuery常用简单动画操作方法回顾与总结
Dec 07 jQuery
jQuery开发仿QQ版音乐播放器
Jul 10 jQuery
vue 获取url里参数的两种方法小结
Nov 12 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
memcache命令启动参数中文解释
2014/01/13 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
Javascript的IE和Firefox兼容性汇编
2006/07/01 Javascript
javascript右下角弹层及自动隐藏(自己编写)
2013/11/20 Javascript
ExtJs中gridpanel分组后组名排序实例代码
2013/12/02 Javascript
Jquery实现textarea根据文本内容自适应高度
2015/04/03 Javascript
jquery实现手风琴效果
2015/11/20 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
javascript 将共享属性迁移到原型中去的实现方法
2016/08/31 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
微信小程序返回箭头跳转到指定页面实例解析
2019/10/08 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
JS+DIV实现拖动效果
2020/02/11 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
[04:03]辉夜杯主赛事 12月25日RECAP精彩回顾
2015/12/26 DOTA
python开发之list操作实例分析
2016/02/22 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
2019/03/20 Python
python3通过selenium爬虫获取到dj商品的实例代码
2019/04/25 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
2020/08/07 Python
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
JAVA招聘远程笔试题
2015/07/23 面试题
员工培训邀请函
2014/01/11 职场文书
疾病捐款倡议书
2014/05/13 职场文书
监察建议书格式
2014/05/19 职场文书
党的群众路线对照检查材料范文
2014/09/24 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
辞职信的写法
2015/02/27 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书
攻略丨滑雪究竟该选哪款对讲机?
2022/02/18 无线电