欢迎光临:
  
  非常感谢您光临枕善居。本站是一个免费的基于VB,VB.NET源代码交流的平台,为大家提供优质的专业的源代码,如果您有需要,本站可以帮助在业余时间里给您寻找代码。当然,如果您有好的代码也可以在本站发布,共享给大家。
专业VB和.NET源码、编程开发教程、图标资源、USB电脑遥控器、智能家电控制开关....更多东东请进入我的淘宝小店--->
VB及.NET新源码2011(3DVD,控件+资源) 智能多路控制(串口编程开关) 带源码!


07-10
07

VB6中SendKeys的基本应用

SendKeys
模拟键盘操作,将一个或多个按键指令发送到指定Windows窗口来控制应用程序运行,  
其使用格式为:object.SendKeys string  
“object”:表示WshShell对象  
“string”:表示要发送的按键指令字符串,需要放在英文双引号中。  
1.基本键  
  一般来说,要发送的按键指令都可以直接用该按键字符本身来表示,例如要发送字母“x”,使用“WshShell.SendKeys "x"”即可。当然,也可直接发送多个按键指令,只需要将按键字符按顺序排列在一起即可,例如,要发送按键“happy”,可以使用“WshShell.SendKeys "happy"”。  
2.特殊功能键  
  对于需要与Shift、Ctrl、Alt三个控制键组合的按键,SendKeys使用特殊字符来表示:  
Shift---------WshShell.SendKeys "+"  
Ctrl---------WshShell.SendKeys "^"  
Alt---------WshShell.SendKeys "%"  
由于“+”、“^”这些字符用来表示特殊的控制按键了,如何表示这些按键呢?  
只要用大括号括住这些字符即可。例如:  
要发送加号“+”,可使用“WshShell.SendKeys "{+}"”  
另外对于一些不会生成字符的控制功能按键,也同样需要使用大括号括起来按键的名称,例如要发送回车键,需要用“WshShell.SendKeys "{ENTER}"”表示,发送向下的方向键用“WshShell.SendKeys "{DOWN}"”表示。  
Space---------WshShell.SendKeys " "  
Enter---------WshShell.SendKeys "{ENTER}"  
←---------WshShell.SendKeys "{RIGHT}"  
↑---------WshShell.SendKeys "{UP}"  
F1---------WshShell.SendKeys "{F1}"  
Tips:如果需要发送多个重复的单字母按键,不必重复输入该字母,SendKeys允许使用简化格式进行描述,使用格式为“{按键 数字}”。例如要发送10个字母“x”,则输入“WshShell.SendKeys "{x 10}"”即可。  
实例:  
----------------------------------------------------  
按下F5刷新桌面  
Dim WshShell,Path,i  
Set WshShell = WScript.CreateObject("WScript.Shell")  
WshShell.SendKeys "{F5}"  
----------------------------------------------------  
电脑的自动重启  
set WshShell = CreateObject("WScript.Shell")  
WshShell.SendKeys "^{ESC}u"  
WshShell.SendKeys "R"  
----------------------------------------------------  
启动任务管理器  
set WshShell = CreateObject("WScript.Shell")  
WshShell.SendKeys "^+{ESC}"  
----------------------------------------------------  
QQ消息群发  
Dim WshShell  
Set WshShell= WScript.createObject("WScript.Shell")  
WshShell.AppActivate "bomb"  
for i=1 to 60  
WScript.Sleep 800  
WshShell.SendKeys "Number0"  
WshShell.SendKeys i  
WshShell.SendKeys "%s"  
next  
----------------------------------------------------  
自动到百度搜索歌曲:white flag  
Dim WshShell,Path,i  
Set WshShell = WScript.CreateObject("WScript.Shell")  
WshShell.Run("IEXPLORE.EXE")  
WScript.Sleep 2000  
WshShell.AppActivate "about:blank-Microsoft Internet Explorer"  
WshShell.SendKeys "+{TAB}"  
WshShell.SendKeys "http://mp3.baidu.com"  
WScript.Sleep 800  
WshShell.SendKeys "{ENTER}"  
WScript.Sleep 3000  
WshShell.SendKeys "white flag"  
WScript.Sleep 800  
WshShell.SendKeys "{ENTER}"  
----------------------------------------------------  
在记事本中输入Happy Birthday!并保存为birth.txt  
Dim WshShell  
Set WshShell=WScript.CreateObject("WScript.Shell")  
WshShell.Run "notepad"  
WScript.Sleep 1500  
WshShell.AppActivate "无标题 - 记事本"  
WshShell.SendKeys "H"  
WScript.Sleep 500  
WshShell.SendKeys "a"  
WScript.Sleep 500  
WshShell.SendKeys "p"  
WScript.Sleep 500  
WshShell.SendKeys "p"  
WScript.Sleep 500  
WshShell.SendKeys "y"  
WScript.Sleep 500  
WshShell.SendKeys " "  
WScript.Sleep 500  
WshShell.SendKeys "B"  
WScript.Sleep 500  
WshShell.SendKeys "i"  
WScript.Sleep 500  
WshShell.SendKeys "r"  
WScript.Sleep 500  
WshShell.SendKeys "t"  
WScript.Sleep 500  
WshShell.SendKeys "h"  
WScript.Sleep 500  
WshShell.SendKeys "d"  
WScript.Sleep 500  
WshShell.SendKeys "a"  
WScript.Sleep 500  
WshShell.SendKeys "y"  
WScript.Sleep 500  
WshShell.SendKeys "!"  
WScript.Sleep 500  
WshShell.SendKeys "%FS"  
WScript.Sleep 500  
WshShell.SendKeys "b"  
WScript.Sleep 500  
WshShell.SendKeys "i"  
WScript.Sleep 500  
WshShell.SendKeys "r"  
WScript.Sleep 500  
WshShell.SendKeys "t"  
WScript.Sleep 500  
WshShell.SendKeys "h"  
WScript.Sleep 500  
WshShell.SendKeys "%S"  
WScript.Sleep 500  
WshShell.SendKeys "%FX"  
----------------------------------------------------  
制作能自动定时存盘的记事本  
'第一部分:定义变量和对象  
Dim WshShell, AutoSaveTime, TXTFileName  
AutoSaveTime=300000  
Set WshShell=WScript.CreateObject("WScript.Shell")  
TXTFileName=InputBox("请输入你要创建的文件名(不能用中文和纯数字):")  
'第二部分:打开并激活记事本  
WshShell.Run "notepad"  
WScript.Sleep 200  
WshShell.AppActivate "无标题 - 记事本"  
'第三部分:用输入的文件名存盘  
WshShell.SendKeys "^s"  
WScript.Sleep 300  
WshShell.SendKeys TXTFileName  
WScript.Sleep 300  
WshShell.SendKeys "%s"  
WScript.Sleep AutoSaveTime  
'第四部分:自动定时存盘  
While WshShell.AppActivate (TXTFileName)=True  
WshShell.SendKeys "^s"  
WScript.Sleep AutoSaveTime  
Wend  
WScript.Quit  
----------------------------------------------------  
死机的,嘿嘿!
DIM WSHSHELL  
SET WSHSHELL=WSCRIPT.CreateOBJECT("WSCRIPT.SHELL")  
'WSHSHELL.RUN " "  
'WSCRIPT.SLEEP 1000  
WSHSHELL.SENDKEYS "{ENTER}"  
'WSCRIPT.SLEEP 1000  
WSHSHELL.SENDKEYS "{ENTER}"  
'WSCRIPT.SLEEP 1000  
WSHSHELL.SENDKEYS "{ENTER}"  
'WSCRIPT.SLEEP 1000  
WSHSHELL.SENDKEYS "{ENTER}"  
'WSCRIPT.SLEEP 1000  
WSHSHELL.SENDKEYS "{ENTER}"  
----------------------------------------------------  
定时关机的
Dim WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
WScript.Sleep 2000
WshShell.Run "shutdown -r -t 120"
wscript.sleep 6000
WshShell.Run "shutdown -a


文章来自: 本站转载
引用通告: 查看所有引用 | 我要引用此文章
Tags: 远程抄表 LED
评论: 5 | 引用: 0 | 查看次数: 10355

回复回复ihavetosay [2009-08-15 17:17:00 |  | del]
MSDN:
SendKeys 语句示例
本示例使用 Shell 函数来运行 Microsoft Windows 所附的计算器程序;然后使用 SendKeys 语句来按下计算器的某些数字键,最后退出计算器。(若要观察示例运行过程,可将示例粘贴到过程中,再运行过程即可。因为 AppActivate 会将焦点转移到计算器应用程序,故本示例不能以单步方式来运行。)。

Dim ReturnValue, I
ReturnValue = Shell("Calc.EXE", 1)   ' 运行计算器。
AppActivate ReturnValue    ' 激活计算器。
For I = 1 To 100   ' 设置计数循环。
   SendKeys I & "{+}", True   ' 按下按键给计算器
Next I   ' 将所有 I 值相加。
SendKeys "=", True   ' 取得总合。
SendKeys "%{F4}", True   ' 按 ALT+F4 关闭计算器。

回复回复ihavetosay [2009-08-15 17:13:42 |  | del]
拜托!!!、老大、vb中可以直接使用SendKeys,你干嘛CreatObject????至于Sleep,还是API比较好。CreatObject找不到对象。
回复回复ahuatian2008 [2008-01-27 12:56:07 |  | del]
谢谢提供。
回复回复jueyuan21 [2007-11-03 15:43:00 |  | del]
不错,[smile][smile][smile]先看看
回复回复ynhgk [2007-10-11 22:33:59 |  | del]
谢谢提供。[GoodLuck]
发表评论
您没有权限发表评论!