当前位置: 首页 > news >正文

【Vegas原创】sendkeys实例

需求:将excel档更新提醒关闭,并另存为a*.xls.

dim  wsh
set  wsh = wscript.createobject( " wscript.shell " )
wsh.run 
" 每日生產狀況表.xls "
wscript.sleep 
1000
wsh.sendkeys 
" {RIGHT} "
wscript.sleep 
100
wsh.sendkeys 
" {enter} "
wscript.sleep 
100
wsh.sendkeys 
" %EK "
wscript.sleep 
100
wsh.sendkeys 
" %S "
wscript.sleep 
100
wsh.sendkeys 
" {UP} "
wscript.sleep 
100
wsh.sendkeys 
" {enter} "
wscript.sleep 
100
wsh.sendkeys 
" %L "
wscript.sleep 
100
wsh.sendkeys 
" %FA "
wscript.sleep 
100
wsh.sendkeys 
" {Left} "
wscript.sleep 
100
wsh.sendkeys 
" a "
wscript.sleep 
100
wsh.sendkeys 
" {enter} "
wscript.sleep 
100
wsh.sendkeys 
" ^Y "
wscript.sleep 
100
wsh.sendkeys 
" %FX "


详解:

Private   Sub  CmdBack_Click()              ' 发送多个相同字符以及多个功能键 
TxtStr.SetFocus 
SendKeys 
" {余 10} " True   ' 向文本框中发送10个余字,并等待其执行完毕 
MsgBox   " 已添加了10个""余""字,要删除咯! " 64   ' 提示信息 
TxtStr.SetFocus  ' 这一句不是一定要,但为了除止意外,比如msgbox时你把焦点移到了TxtStr之外,在程序中,我们要防止任何可能的错误 
SendKeys  " {BackSpace 10} "   ' 发送10次Back键 
End Sub  

Private   Sub  CmdNote_Click()              ' 发送组合键 
Shell  " notepad " , vbMaximizedFocus     ' 调用激活记事本程序 
SendKeys  " 小丽,天天开心才乖哦!~{F5} " True   ' 发送字符串,其中还有个换行符(在这里可以回车可以当成换行符),注意"~"这个符号代表了回车(Enter),{F5},发送F5到notepad,它将自动插入一个时间 
SendKeys  " %{F4} " True   ' 发其发送一个关闭的消息 Alt + F4 
SendKeys  " y " True   ' 发送Y表示保存 
Randomize     ' 初始化随机数生成器 
SendKeys  " 小丽无敌 "   &  Str( Int ( Rnd   *   10000 )),  True   ' 文件名 
SendKeys  " ~ " True   ' 发送回车键 (效果相当于点了确定) 
End Sub  

Private   Sub  CmdTaskmgr_Click()           ' 发送功能键 
On   Error   Resume   Next   ' 此处用此语句是为了防止第五行发生错误,比如弹出对话框时,你关闭了任务管理器,就会发生错误.你可以把这一行打上注释之后看效果 
    Shell  " taskmgr.exe " , vbNormalFocus         ' 调用任务管理器 
     MsgBox   " 看好了!要关闭咯! " 64       ' 提示信息,此处注意,老公每个程序里的msgbox 都带了图标哦!这是个必须养成的习惯 
    AppActivate  " Windows 任务管理器 "    ' 激活作务管理器窗口,以备发送按键 
    SendKeys  " {Esc} " True              ' 发送 ESC 键,任务管理器收到后将关闭 
    AppActivate Me.Caption  ' 激活程序窗口 
End Sub  

Private   Sub  CmdText_Click()              ' 发送普通文本 
TxtStr.SetFocus  ' 使文本框得到焦点 
SendKeys  " 小丽要天天开心哦{~} {(} 哈哈 {)} "   ' 发送以下字符到文本框,发送字符串不需要特殊的格式,只要在此处输入文本即可 
'
 + ^ % ~ { } ( ) 这些字符是不是允许直接发送的,如确实需要发送,可以将它们用{}括起来 
'
注意,"[]"如果当成字符来发送时,可以不放在{}中,但如果当成按键来发送,就必须放在{}中,一般都放在{}中 
End Sub  


' 还有几点小常识,以前老公没给你说过#17 例如我想在msgbox 中显示以下的内容 
'
 小丽,嘿嘿,"这"是一个例子. 
'
注意其中的双引号,如果确实需要英文件双引号,则应该用两个双引号来代替,代码如下 
'
msgbox "小丽,嘿嘿,""这""是一个例子.",64 

' 另外在很多程序中,有可以用 Alt + 某键 来激活的菜单及按钮 
'
具体的实现方法是用 "&" 这个符号来实现此功能,即给那些菜单和按钮中的字符加上下划线,例如以下代码 
'
窗体上有一个Command1,当按下 Alt + X 时,可以触发它的单击事件,为何是X?因为它在以下程序中是 "&" 符后的第一个字母 
'
不管放在字符串的中间还是开头结尾,其效果都是一样滴. 
'
如果确实需要在程序中加入"&"这个符号,而不让其它字符带下划线,可以用两个"&"来代替 
'
private sub form_load() 
'
command1.caption = "&XCommandButton" 
'
end sub 
'
private sub command1_click() 
'
msgbox "小丽触发了此按钮的单击事件~  ^_^ ",64 
'
end sub 

 

将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。

语法

SendKeys 
string [, wait]

SendKeys 语句的语法具有以下几个命名参数:

string  必需的。字符串表达式,指定要发送的按键消息。 

Wait 可选的。指定等待方式的 BooleandefBooleanDataType@veendf98.chm 值。如果为 
False (缺省值),则控件在按键发送出去之后立刻返回到过程。如果为  True ,则按键消息必须在控件返回到过程之前加以处理。 

说明

每个按键由一个或多个字符表示。为了指定单一键盘字符,必须按字符本身的键。例如,为了表示字母 A,可以用 
" A "  作为  string 。为了表示多个字符,就必须在字符后面直接加上另一个字符。例如,要表示 A、B 及 C,可用  " ABC "  作为  string

对 SendKeys 来说,加号 (
+ )、插入符 ( ^ )、百分比符号 (%)、上划线 (~) 及圆括号 ( ) 都具有特殊意义。为了指定上述任何一个字符,要将它放在大括号 ({}) 当中。例如,要指定正号,可用 { + } 表示。方括号 ([ ]) 对 SendKeys 来说并不具有特殊意义,但必须将它们放在大括号中。在其它应用程序中,方括号有特殊意义,在出现动态数据交换 (DDE) 的时候,它可能具有重要意义。为了指定大括号字符,请使用 {{} 及 {}}。

为了在按下按键时指定那些不显示的字符,例如 ENTER 或 TAB 以及那些表示动作而非字符的按键


为了说明在按下其它按键时应同时按下 SHIFT、CTRL、及 ALT 的任意组合键,请把那些按键的码放在括号当中。例如,为了说明按下 E 与 C 的时候同时按下 SHIFT 键,请使用 
" +(EC) " 。为了说明在按下 E 的时候同时按下 SHIFT 键,但接着按 C 而不按 SHIFT,则使用  " +EC "

为了指定重复键,使用 {key number} 的形式。必须在 key 与 number 之间放置一个空格。例如,{
LEFT   42 } 意指  42  次按下  LEFT  ARROW 键;{h  10 } 则是指  10  次按下 H 键。

注意 不能用 SendKeys 将按键消息发送到这样一个应用程序,这个应用程序并没有被设计成在 Microsoft Windows 中运行。Sendkeys 也无法将 PRINT SCREEN 按键 {PRTS

C} 发送到任何应用程序.


相关文章:

  • 【原创】PostgreSQL 实现MySQL insert ignore 语法。
  • 闲话网名(一)
  • 与后台的一些事情
  • XAML开发入门之创建XAML应用程序
  • 巧妙运用二进制验证权限
  • 网站部署成功...
  • 将SCOM2007代理升级到 System Center 2012 SP1
  • 一道有意思的问题
  • Ubuntu系统连接Android真机测试
  • 台湾校长高震东的演讲!
  • Node.js连接postgres
  • HFSoft.Data 2.0的Nunit测试用例
  • squid代理配置与应用
  • MDX函数使用介绍(四):字符串函数元组函数
  • magento中给form添加输入验证
  • [case10]使用RSQL实现端到端的动态查询
  • [Vue CLI 3] 配置解析之 css.extract
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • docker python 配置
  • JS专题之继承
  • Linux链接文件
  • mysql innodb 索引使用指南
  • nginx 配置多 域名 + 多 https
  • Python中eval与exec的使用及区别
  • 分布式熔断降级平台aegis
  • 构造函数(constructor)与原型链(prototype)关系
  • 自动记录MySQL慢查询快照脚本
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 如何在招聘中考核.NET架构师
  • #Spring-boot高级
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (1) caustics\
  • (12)Hive调优——count distinct去重优化
  • (6)添加vue-cookie
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (Ruby)Ubuntu12.04安装Rails环境
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (一)基于IDEA的JAVA基础12
  • (转)Linux下编译安装log4cxx
  • (转载)hibernate缓存
  • .mysql secret在哪_MYSQL基本操作(上)
  • .mysql secret在哪_MySQL如何使用索引
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .Net 知识杂记
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET的数据绑定
  • .net流程开发平台的一些难点(1)
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @Builder用法
  • @media screen 针对不同移动设备