[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

VBS怎样复制、粘贴内容?

vbs复制、粘贴内容
想实现以下功能
以bat运行a.vbs
start "" "a.vbs" zt 或 start "" "a.vbs" mt
当参数为 zt 时,将昨天的日期复制到剪贴板并粘贴
参数为 mt 时,将明天的日期复制到剪贴板并粘贴
能实现吗?
注:wscript.echo dateadd("d",-1,date) 显示的时间为 2011-1-1形似
我希望是2011-01-01形似的可以吗?

更新要求:
  或者直接运行 a.vbs zt 这样也可以
  如果接收参数太麻烦,不要参数也可以,关键是要能粘贴
  不是手动粘贴,是自动粘贴


[ 本帖最后由 随风 于 2011-1-25 00:04 编辑 ]
技术问题请到论坛发帖求助!

以下是没有粘贴部分的代码。

粘贴是粘贴到批处理窗口吗?如果是这样,直接在窗口显示不是更方便?


  1. Dim objArgs,var,NewDate
  2. Set objArgs=WScript.Arguments
  3. var=objArgs.Item(0)
  4. Select Case LCase(var)
  5.   Case "zt"
  6.     NewDate=DateAdd("d",-1,Date)
  7.   Case "mt"
  8.     NewDate=DateAdd("d",1,Date)
  9. End Select
  10. SetClipboardText(NewDate)
  11. WScript.Quit
  12. Sub SetClipboardText(Text)   '写入信息到剪切板
  13.     Dim wsh
  14.     Set wsh = CreateObject("WScript.Shell")
  15.     wsh.Run "mshta vbscript:ClipboardData.SetData("&chr(34)& _
  16.              "text"&chr(34)&"," &Chr(34)& Text &Chr(34)& _
  17.              ")(close)",0,True
  18.     Set wsh=Nothing
  19. End Sub
复制代码

TOP

回复 2 楼
谢谢,
我是在输入法中使用,直接输入 zt
实际是运行vbs带 zt 参数,将结果日期直接粘贴在文本光标处
若是这参数能是数字就更好了,比如输入 zt-5 则代表是5天前的日期,mt-3 则是3天后的日期
现在关键是这个粘贴功能,不知道能实现不,不考虑“模拟按键”
技术问题请到论坛发帖求助!

TOP

这个我也想知道:),我想要实现的功能可能比这个更麻烦。。我想根据excel的里面的每一行的每一个表格的里面的内容填写对应的网上表单的内容。。。

[ 本帖最后由 yhcbird 于 2011-1-25 10:35 编辑 ]
菜鸟学批,一批一大批~~~~~~

TOP

好像粘贴就是用模拟按键Ctrl + V来实现的

TOP

  1. Dim objArgs,wsh,ary,NewDate
  2. Set objArgs=WScript.Arguments
  3. If objArgs.Count=0 Then WScript.Quit
  4. ary=Split(objArgs.Item(0),"-",-1)
  5. ReDim Preserve ary(1)
  6. Call SetDateAdd(NewDate,ary(0),ary(1))
  7. SetClipboardText(NewDate)
  8. Set wsh=CreateObject("WScript.Shell")
  9. WScript.Sleep 100
  10. wsh.SendKeys "^v"
  11. Set wsh=Nothing
  12. Sub SetClipboardText(Text)   '写入信息到剪切板
  13.     CreateObject("WScript.Shell").Run _
  14.          "mshta vbscript:ClipboardData.SetData(""text""," & _
  15.          Chr(34)& Text &Chr(34)& ")(close)",0,True
  16. End Sub
  17. Sub SetDateAdd(NewDate,strDay,strNum)
  18.   If IsEmpty(strNum) Then strNum=1
  19.   Select Case LCase(strDay)
  20.   Case "zt"
  21.     NewDate=DateAdd("d",-strNum,Date)
  22.   Case "mt"
  23.     NewDate=DateAdd("d",strNum,Date)
  24.   Case Else
  25.     WScript.Quit
  26.   End Select
  27. End Sub
复制代码

[ 本帖最后由 broly 于 2011-1-25 15:52 编辑 ]
1

评分人数

TOP

回复 6楼 的帖子

谢谢,测试通过
但发现无法检测输入,晕,看来只有在输入法配置文件中定义大量的天数才行了。
技术问题请到论坛发帖求助!

TOP

返回列表