用键盘精灵:神不知鬼不觉的发送键盘消息
作者:佚名 出处:网络整理 更新时间:2007-05-24 责任编辑:
 
 

启动之前,请将任意一个浏览器页面放置于前台!

//打开一个网页,本例以百度为例
VBSCall RunApp("www.baidu.com")

//获得当前可以发送按键消息的窗口句柄,并把值赋给 hwnd
Plugin hwnd = Window.GetKeyFocusWnd()
Delay 1000
VBSCall MessageBox("现在可以把需要刷新的页面放置后台或者最小化了")
Rem star

//向句柄为 hwnd 的窗口发送键盘按键消息F5按一次(F5的ASC码值为116)
Plugin Window.SendKeyPress(hwnd,116)

//根据刷新一次的时间,设置个延迟
Delay 5000
Goto star

新人朋友们对windows插件不太理解很大原因可能是不太清楚下面一些概念

首先我们要理解以下概念(大家要重视下面这段比较大的文字啊)
一个位于前台的程序:我们所能操作的一组窗口,它是唯一的,由软件调用系统生成

一个位于后台的程序:我们打开的非前台的一组窗口,由软件调用系统生成

窗口:一个矩形的区域

窗口句柄:在按键精灵中你可以简单理解为是某个窗口临的唯一标识.

我们不能把2次打开某个软件进入了一个界面 理解为是2次打开了同一个窗口.你可以测试下,2次窗口的句柄是不同的.

知道窗口是windows系统构建的.

某个窗口一旦关闭(最小化不是关闭)他就结束了,即使再由同一程序打开一个界面一模一样的窗口,新打开的窗口并不是刚才关闭的窗口.

示例图片中红框是一窗口,蓝框也是一个窗口,圣诞图片也是一个窗口,蓝框窗口和图片窗口都是红框窗口的子窗口.

这3个窗口就是一组qq程序的窗口

绿框部分还有 登陆 取消 等按扭包括qq本来界面上的的那个蓝框都是蓝框窗口的窗口控件,这个只要知道就可以了.

向后台发送键盘消息主要分以下二个步骤!

1.确定接受 消息 的窗口
我们可以通过获得窗口 句柄 来确定一个窗口
软件提供的windows插件有3条命令可以实现获得一个窗口的句柄
hwnd是返回值,由我们自己定义,可以看成是一个静态变量

//返回鼠标所在位置的窗口句柄
Plugin hwnd1 = Window.MousePoint()

//返回前台的窗口句柄,假设qq登陆的一组窗口在前台,那么返回是示例上红框的窗口句柄
Plugin hwnd2 = Window.Foreground()

//返回当前可以发送按键消息的窗口句柄,假设qq登陆的一组窗口在前台,返回的是可以发送按键消息的窗口句柄
要注意这条命令与上条的区别
Plugin hwnd3 = Window.GetKeyFocusWnd()

例子中我们通过Plugin hwnd = Window.GetKeyFocusWnd()
把百度网页窗口句柄赋给了 hwnd
我们也可以通过
Plugin hwnd = Window.MousePoint()或者
Plugin hwnd = Window.Foreground()
来获得百度这个网页的窗口句柄,但要注意这2句使用的前提条件与Window.GetKeyFocusWnd() 的不同.

2.向窗口发送按键消息命令,这里的窗口是指一个窗口不是一组窗口

例子中 我们通过Plugin hwnd = Window.GetKeyFocusWnd()
已经得到了百度网页这个窗口中可以发送按键消息的一个窗口句柄 hwnd

以下3条命令都可以向一个窗口发送一条按键消息,它们都有2个参数

第一个参数,想要发送消息的那个窗口句柄,例子得到的 hwnd
第二个参数,发送的按键ASC码值,想发送字母"A",则写65,例子中想发送F5,F5的ASC码值为116

//发送一个按住某按键的消息
Plugin Window.SendKeyDown(窗口句柄,按键ASC值)

//发送一个某按键弹起的消息
Plugin Window.SendKeyUp(窗口句柄,按键ASC值)

//发送一个按一次某按键的消息
Plugin Window.SendKeyPress(窗口句柄,按键ASC值)

当然我们可以通过下面2句来代替Plugin Window.SendKeyPress(hwnd,116)
Plugin Window.SendKeyDown(hwnd,116)
Plugin Window.SendKeyUp(hwnd,116)

 
     
 
 
继续>>按键精灵
[第1页][第2页][下一页]
 
内容导航  
第1页用键盘精灵:神不知鬼.. 第2页按键精灵
上一篇 : FlashFXP使用中文版教程 下一篇FlashFXP软件使用技巧集..
 
  您要为所发表的言论的后果负责,请各位遵纪守法并注意文明用语
标题:  

[ 关于本站 ] [ 广告服务 ] [ 商务合作 ] [ 联系我们 ] [ 合作伙伴 ] [ 法律顾问 ] [ 网站地图 ]
千橡公司 京ICP证041489号 Copyright (c) 1997-2007 All Right Reserved.